1. 求1-500中能被3整除的数之和,还有统计多少个。

我的答案是 :167

$sum =0;
for($i =0;$i<=500;$i++){if($i%3==0){$sum++;}
}
echo $sum;
  1. 求 s=1+2-3+4-5+6-7+8-9+10…-99+100

我的答案是 52

$sum = 1;
$flag =true;
for($i =2;$i <= 100; $i++){if($flag){$sum +=$i;$flag =false;}else{$sum -=$i;$flag =true;}
}
echo $sum;
  1. 求s=20! s=1!+2!+3!+…+20!

我的答案是 2.4329020081766E+18

//求s=20!  s=1!+2!+3!+…+20!
$sum =1;
for ($i =1;$i <= 20; $i++){$sum *=$i;
}
echo $sum;
//阶乘的结果是 2.4329020081766E+18
  1. 求在所有四位数(1000-9999)中的含有5的数字是多少个?

我的答案是 3168

$sum =0;
$re =0;
for($i =1000;$i <=9999; $i++){if(strpos($i,"5") !==false){$sum++;}else{$re++;
//        echo "没有";}
}
echo $sum;
//结果是3168
  1. 求1000以内的回文数

答案是90个

$sum =0;
for($i =1000;$i<= 9999;$i++){if( isPalindrome($i)){echo $i;echo "\n";$sum++;}
}
echo $sum;
//答案是90个function  isPalindrome($x){$len = strlen($x);$str = strrev($x);if($len > 0 && $str == $x){return true;}return false;}
  1. 求1000以内的水仙花
//水仙花
// 1000以内的水仙花数for($i =100;$i<1000;$i++){$a =intval($i%10);$b =intval(($i/10)%10);$c = intval($i /100);if($i == $a*$a*$a+$b*$b*$b+$c*$c*$c){print $i;echo "\n";}}
  1. 求s=1/(1+2)+1/(3+4)+1/(5+6)+…+1/(50+51)

1.9476758385739

$sum =0;
for ($i =1;$i <= 50;$i+=2){$sum += (1/($i+($i+1)));
}
echo $sum;
  1. 求0-6中能组成的一个四位的整数之和。

100
101
102
103


for ($i =1;$i<=6;$i++){for ($j=0;$j<=6;$j++){for ($k=0;$k<=6;$k++){echo ($i*100)+($j*10)+$k;echo "\n";}echo "\n";}
}
  1. 把任意输入一个学号转化为字母,0=a,1=b,2=c,3=d,4=e,5=f,6=g,7=h,8=i,9=j例如(2017328201====>cabhdcicab),只能用程序完成,不能使用手工。
$id =Array('a','b','c','d','e','f','g','h','i','j');
$handle = fopen('php://stdin','r'); //从控制台输入
$input= fgets($handle); //接受
$arr = str_split($input); //字符串转化为数组
for ($i=0;$i<10;$i++){$indx =$arr[$i];echo $id[$indx];}
echo  "\n";
if($input){echo $input;
}
fclose($handle);
  1. 输入如下图形,不能直接字符输出,要使用循环实现。

1
11
111
1111
11111
111111
1111111
11111111
111111111

for ($i =0;$i<10;$i++){for ($j =0;$j<=$i;$j++){echo 1;echo " ";}echo "\n";
}

11.输入如下图形,不能直接字符输出,要使用循环实现。

输出如下
1
11
111
1111
11111
111111
1111111
11111111
111111111
解题思路:第一个现控制好空格,第二个就是进行输出“1”

for($a=1;$a<=10;$a++){for ($b=10;$b>=$a;$b--){echo " ";
//        echo "&nbsp";}for($c=1;$c<=$b;$c++){echo "1"." ";
//        echo "*"."&nbsp";}
//    echo "<br />";echo "\n";
}


12. 输入如下图形,不能直接字符输出,要使用循环实现。

1000000001 a(1,1) a(1,10)
0100000010 a(2,2) (2,9)
0010000100 a(3,3)
0001001000
0000110000
0000110000
0001001000
0010000100
0100000010
1000000001

//待解
  1. 输入如下图形,不能直接字符输出,要使用循环实现。

1111111111
2222222222
3333333333
4444444444
5555555555
6666666666
7777777777
8888888888
9999999999

for ($i =1;$i<10;$i++){for ($b =1;$b<10;$b++){echo $i." ";}echo "\n";
}
  1. 输入如下图形,不能直接字符输出,要使用循环实现。

效果图
0000000000
0111111110
0100000010
0111111110
0100000010
0100000010
0111111110
0100000010
0111111110
0000000000

//待解
  1. 输入如下图形,不能直接字符输出,要使用循环实现。

效果图
效果图如下

//待解
  1. 生成国际象棋棋盘。

效果图

<!DOCTYPE html>
<html>
<head><title>国际象棋制作</title><style type="text/css">table,tr{border-collapse: collapse;border:1px solid;}td{width: 20px;height: 20px;}.black{background: #000;}</style>
</head>
<body>
<table><?phpfor($row=10;$row>=1;$row--){echo '<tr>';for($column=10;$column >= 1; $column--){if (($row + $column) % 2) {echo '<td></td>';} else {echo '<td class="black"></td>';}}echo '</tr>';}?>
</table>
</body>
</html>
  1. 模拟计算机的简单运行算功能,可以实现加减乘除效果

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>简单运算器</title>
</head>
<body>
<?php
if(!empty($_POST)){$num1=$_POST['data1'];$num2=$_POST['data2'];$fuhao=$_POST['yunsuanfu'];if($fuhao == '+'){$jieguo = $num1+$num2;}else if ($fuhao == '-'){$jieguo = $num1-$num2;}else if ($fuhao == '*'){$jieguo = $num1*$num2;}else if ($fuhao == '/'){$jieguo = $num1/$num2;}else if ($fuhao == '%'){$jieguo = $num1%$num2;}
}
else{$jieguo="";$num1="";$num2="";$fuhao="";
}
?>
<h1>我的运算器</h1>
<form action = "" method="post"><input type ="text" name="data1" value="<?php echo $num1;?>" /> <select name ="yunsuanfu"><option value="+" <?php if($fuhao=="+"){echo 'selected="selected"';}?> >+</option>  <option value="-" <?php if($fuhao=="-"){echo 'selected="selected"';}?> >-</option>  <option value="*" <?php if($fuhao=="*"){echo 'selected="selected"';}?> >*</option>  <option value="/" <?php if($fuhao=="/"){echo 'selected="selected"';}?> >/</option>  <option value="%" <?php if($fuhao=="%"){echo 'selected="selected"';}?> >%</option>  </select><input type="text" name="data2" value="<?php echo $num2;?>"/><input type ="submit" value="="/><input type="text" name="result" value="<?php echo $jieguo;?>"/>
</form>
</body>
</html>

19 .把你学号转化为16进制的数,在16进制的数中的属于(0-9)取出,从左到右重新排列组成新的一个十进制的数,例如(3D2A1)=(321)。再把这个数进行因式分解。

//待解
  1. 约瑟夫环的设计
//待解
  1. 水仙花数变种题目求在所有四位数(1000-9999)中的每一位的四次方之和相等,例如1634=1^4+ 6^4+ 3^4+ 4^4 有多少个?

答案是
634
8208
9474

for($i =1000;$i<9999;$i++){$a =intval($i%10); //个位$b =intval(($i/10)%10); //百位$c = intval(($i /100)%10); //千位$d = intval(($i/1000)%10);//if ($i==pow($a,4)+pow($b,4)+pow($c,4)+pow($d,4)){echo $i;echo "\n";}
  1. 随机产生10个汕尾地区的小汽车的车牌号(例如:粤.N 2 O N D )]

粤.NqYek
粤.NYoNC
粤.NJpXy
粤.NiO1z
粤.NX8pW
粤.N1iqB
粤.NedEt
粤.NvT7n
粤.N8pHU
粤.NwfiF


function randstr($len=4) {$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';mt_srand((double)microtime()*1000000*getmypid());$password='';while(strlen($password)<$len)$password.=substr($chars,(mt_rand()%strlen($chars)),1);return $password;
}
for ($i =0;$i<10;$i++){$num =randstr();echo "粤.N".$num;echo "\n";
}
  1. 给你一个40斤的西瓜,给3个人分,有多少种分法?

结果是:741

$sum =0;
for ($i =1;$i<=40;$i++){for ($b =1;$b<=40;$b++){for ($c=1;$c<=40;$c++){if ($i+$b+$c ==40){$sum++;}}}
}
echo $sum;
  1. 实现可以随机产生10道(0-100之间加减乘除)的算术题,让学生进行作答,可以实现统计正确多少。

//待解
  1. 输出一百以内各位和十位相同的数

11
22
33
44
55
66
77
88
99

for ($i =1;$i<=100;$i++){$str =$i.$i;$f =substr($str,0,1);$s =substr($str,1,1);$sum =$f.$s;if($sum ==$i&&$f==$s){echo $i;echo "\n";}
}
  1. 模拟扑克牌洗牌

运行效果

$card_num=54; //牌数
$arr =wash_card($card_num);
for ($i =0;$i<count($arr);$i++){echo "第".($i+1)."张牌".$arr[$i];echo "\n";
}function wash_card($card_num)
{$cards=$tmp=array();for($i=0;$i<$card_num;$i++){$tmp[$i]=$i;}for($i=0;$i<$card_num;$i++){$index=rand(0,$card_num-$i-1);$cards[$i]=$tmp[$index];unset($tmp[$index]);$tmp=array_values($tmp);}return $cards;
}
  1. 求出一个范围的十位和个位相同的数

运行效果

for ($i =1;$i<=100;$i++){$str =$i.$i;$f =substr($str,0,1);$s =substr($str,1,1);$sum =$f.$s;if($sum ==$i&&$f==$s){echo $i;echo "\n";}
}
  1. 输出一个菱形

运行效果图

$a=5; //控制循环的行数
$str = "*"; //输出显示字符
$space = " "; //输出空格字符
//以上是已基本设定
for($i=1;$i<=$a;$i++){ //$b代表空格数目for($b=1;$b<=$a-$i;$b++){ //控制输出的空格数echo $space;} //$c代表输出字符数目for($c=1;$c<=($i-1)*2+1;$c++){ //控制输出的字符数目echo $str;}echo "\n";
} //上面的循环负责菱形的上半部分,下面的循环负责菱形的下半部分
for($i=$a-1;$i>=1;$i--){ //$b代表空格数目for($b=1;$b<=$a-$i;$b++){//控制输出的空格数echo $space;}//$c代表输出字符数目for($c=1;$c<=($i-1)*2+1;$c++){echo $str;}echo "\n";
}
  1. 输入一个数字进行判断等级,

90-100 优秀
80-90 良好
70-80 中等
60-70 及格
<60 不及格
100 或<0 成绩出错

$handle = fopen('php://stdin','r');
$input= fgets($handle);
switch ($input){case $input>100:echo "成绩出错";break;case $input>=90:echo "优秀";break;case $input>=80:echo "良好";break;case $input>=70:echo "中等";break;case $input>=60:echo "及格";break;case $input>=0:echo "不及格";break;default:echo "成绩出错";break;
}
fclose($handle);
  1. 计算s=1000+1001+…+9999的奇数之和。

结果 24751000

//计算s=1000+1001+...+9999的奇数之和。
$sum =1000;
for ($i =1001;$i<=9999;$i++){if($i%2!=0){$sum +=$i;echo $i;echo "\n";}}
echo $sum;
  1. 求出s=1+2!+3!..+15!之和的后三位是?。

结果 000

$sum =1;
for ($i=2;$i<=15;$i++){$sum*=$i;
}
$in =substr($sum,strlen($sum)-3);
echo $in;
  1. 输出(乘法口诀表)

for($j=1;$j<=9;$j++){for($i=1;$i<=$j;$i++){echo "{$i}x{$j}=".($i*$j)." ";}echo "\n";
}
?>
  1. 找出1000-9999的素数的个数?

结果 3384

$sum =0;
for($x=1000;$x<=9999;$x++){for($y=1000;$y<$x;$y++){if($x%$y==0){break;}}if($x==$y){$sum++;echo $x;echo  "\n";}
}
  1. 找出2017-9999的能被5整除的数之和?

结果 9587970

//找出2017-9999的能被5整除的数之和?
$sum=0;
for($i=2017;$i<=9999;$i++){if($i%5==0)$sum+=$i;
}
echo $sum;
  1. 编写一个输入一个十进制的数转为7进制的功能。
    十进制转化为其它

binoct();//转为八进制
bindec();//转为十进制
binhex();//转为十六进制


八进制转为其他进制

octbin();//转为二进制
octdec();//转为十进制
octhex();//转为十六进制


十进制转为其他进制

decbin();//转为二进制
decoct();//转为八进制
dechex();转为十六进制


十六进制转为其他进制

hexbin();转为二进制
hexoct();//转为八进制
hexdec();//转为十六进制

  1. 随机产生10个10-19的不重复的整数。

//随机产生10个10-19的不重复的整数。
$arr=range(10,19);
shuffle($arr);
foreach($arr as $values)
{echo $values." ";
}
  1. 任意输入5个整数,实现可以由小到大进行排序功能。

//任意输入5个整数,实现可以由小到大进行排序功能。
$handle = fopen('php://stdin','r');
$input= fgets($handle);
$arr=str_split($input);
sort($arr);
//echo  $arr;
foreach ($arr as $value){echo $value;
}
fclose($handle);
  1. 输出如下图像:

1
22
333
4444

999999999

//待解
  1. 重复"a-z"26个小写的英文字母10次组成一个字符串,再把这个字符串左右切掉85个剩下的字符是什么?

$num ="abcdefghijklmnopqrstuvwxyz";
for ($i =1;$i<=10;$i++){$num.=$num;
}
$len =strlen($num);
$res =substr($num,85,$len-85);
echo  $res;
  1. 一个整数,它加上100后是一完全平方数,再加上168又是一个完全平方数,请问该数是什么?

结果是
21
261
1581

 for($i =0;$i<168;$i++){for ($j =$i+1;$j<168;$j++){if ($j*$j-$i*$i == 168){if ($i*$i -100>=0){echo $i*$i -100;}echo "\n";}}}
  1. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。

1
3
5
7
11
13
17
19
23
29
31
37
41
43
47

for ($i = 1; $i <= 1000; $i++) {if (isFullNumber($i)) {echo $i;echo "\n";}
}
//    判断是否为完数
function isFullNumber($num) {$list = getFactor($num);$sum = 0;for ($i = 0; $i < count($list); $i++) {$sum += $list[$i];}return $sum == $num;
}//    获得因子
function getFactor($num) {$tmp = $num / 2 + 1;$list = array();for ($i = 1; $i <= $tmp; $i++) {if ($num % $i == 0) {array_push($list, $num);}}return $list;
}
  1. 有四个数字:1,2,3,4 。能组成多少个互不相同且无重复数字的三位数?

$arr=array(1,2,3,4);
for ($a =0;$a < count($arr); $a++){for ($b =0;$b <count($arr); $b++){for ($c =0; $c<count($arr); $c++){if ($arr[$a]!= $arr[$b]&& $arr[$a]!=$arr[$c]&&$arr[$b]!=$arr[$c]){$res =$arr[$a]*100+$arr[$b]*10+$arr[$c];echo $res;echo "\n";}}}
}
  1. 求出下面的二维数组的对角线之和

输出结果 1 10 12 19 23 28 34 37 45 46 55 56 64 67 73 78 82 89 91 100
相加结果是 1010
01 02 03 04 05 06 07 08 09 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100

$arr = array(array(01,02,03,04,05,06,07,8,9,10),array(11,12,13,14,15,16,17,18,19,20),array(21,22,23,24,25,26,27,28,29,30),array(31,32,33,34,35,36,37,38,39,40),array(41,42,43,44,45,46,47,48,49,50),array(51,52,53,54,55,56,57,58,59,60),array(61,62,63,64,65,66,67,68,69,70),array(71,72,73,74,75,76,77,78,79,80),array(81,82,83,84,85,86,87,88,89,90),array(91,92,93,94,95,96,97,98,99,100),
);
$sum = 0;
for ($i =0;$i <10;$i++){for ($j =0; $j <10;$j++){if ($i==$j){echo $arr[$i][$j]." ";}else if ($i == 9-$j){echo $arr[$i][$j]." ";}}
}
  1. 809*??=800*??+9*??其中??代表的两位数,809*??为四位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。
for ($m = 1; $m < 10; $m++) {for ($n = 1; $n < 10; $n++) {if ((9 * ($m * 10 + $n) <= 999 && 9 * ($m * 10 + $n) >= 100)&& ((8 * ($m * 10 + $n) <= 99 && 8 * ($m * 10 + $n) >= 10))) {if (809 * ($m * 10 + $n) == 800 * ($m * 10 + $n) + 9* ($m * 10 + $n) + 1) {echo $n+$m;}else{echo ("不存在");}}}}
  1. 找出0-9和a到z的asccii编码值之和。

结果3372

$sum =0;
//.ord()函数
//该函数用于将字符串转化为ASCII码值。其函数声明如下:
for($x = ord('a'); $x <= ord('z'); $x++){$sum += $x;
}
for ($i =0; $i <= 9; $i++){$sum += ord($i);
//    echo  "\n";
}echo $sum;
  1. 5、求"asdfderewcdwrer"的字符重复50次,每次把左右两边的字符减掉5个substr strlen,重复减20次,最终剩下的字符是?
//5、求"asdfderewcdwrer"的字符重复50次,每次把左右两边的字符减掉5个substr  strlen,重复减20次,最终剩下的字符是?
$text ="asdfderewcdwrer";
//echo  substr($text,5,strlen($text)-10);
for ($i =1;$i<50;$i++){ //15*50个 ==750$text=$text."asdfderewcdwrer";
}
echo $len =strlen($text);
echo $len;
echo "\n";
$res =$text;
for ($i =1;$i<=20;$i++){$res=substr($res,5,strlen($res)-5);//左截取$res=substr($res,0,strlen($res)-5);//右截取
//    echo $len." ";
}
echo "最总结果".strlen($res); //550个
echo "\n";
echo $res;

2021PHP算法期末考试-复习试题相关推荐

  1. 河北工程大学c语言期末考试及答案,河北工程大学之数据结构c语言版期末考试复习试题...

    河北工程大学之数据结构c语言版期末考试复习试题 <数据结构与算法>复习题 一.选择题. 1.在数据结构中,从逻辑上可以把数据结构分为 C . A.动态结构和静态结构 B.紧凑结构和非紧凑结 ...

  2. java期末考试复习题_JAVA期末考试复习试题

    JAVA期末考试复习试题 1.使用Java语言编写的源程序保存时的文件扩展名是( ). (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a> ...

  3. 电大本科计算机导论试题,2018年电大计算机导论期末考试复习试题及答案.doc

    <计算机导论>期末考试复习试题及答案 一.选择题 采用晶体管作为电子元器件的计算机属于( B ). A. 第一代计算机B. 第二代计算机 C. 第三代计算机D. 第四代计算机 冯诺伊曼的主 ...

  4. 计算机c语言期末答案,计算机C语言期末考试复习试题及答案[1]

    <计算机C语言期末考试复习试题及答案[1]>由会员分享,可在线阅读,更多相关<计算机C语言期末考试复习试题及答案[1](26页珍藏版)>请在人人文库网上搜索. 1.C语言复习题 ...

  5. 中南c语言作业答案,中南民族大学10套计算机C语言期末考试复习试题及答案.doc...

    中南民族大学10套计算机C语言期末考试复习试题及答案.doc 一.判断 共10题 (共计10分)第1题 ( 1.0分) 题号1488函数即可以嵌套定义,又可以嵌套调用.N第2题 ( 1.0分) 题号1 ...

  6. c语言版数据结构期末考试试题及答案,数据结构c语言版期末考试复习试题[1]

    10.下面程序段的时间复杂度是 O(log3n) . i = 0: while(i<=n) i = i * 3: 11.在以下的叙述中,正确的是 B . A.线性表的顺序存储结构优于链表存储结构 ...

  7. 大学马克思期末考试复习试题及答案总结

    第一章 1.如何理解马克思主义物质观及其现代意义?(理论意义) 答:一.如何理解物质观:马克思主义的物质观是:物质是标志着客观实在的哲学范畴,它的唯一特性是客观实在性.它不依赖于人的感觉而存在,通过人 ...

  8. 2018人工智能期末考试复习资料(一):学术篇

    机器之心知识委员会 机心通知函[2018]002号 2018 年人工智能专业期末考试复习资料:学术篇 各人工智能研究者.工程师.从业人: 2018 年是人工智能迅猛发展的一年,从技术研究到产业应用都取 ...

  9. 大学操作系统期末考试复习经典计算题快速回顾

    操作系统期末考试复习经典计算题 1.银行家算法 2.计算周转时间 2.1 先来先服务(FCFS) 2.2 短作业优先调度算法(SJF) 2.3 优先级调度算法和高响应比优先调度算法 3.页面置换算法( ...

最新文章

  1. java实现多个接口_java允许实现多个接口
  2. windows上安装gcc/g++环境(MinGW,msys64等)
  3. vs当前文件的函数索引_VM实战(六) - 通过案例深入学习class文件结构原理
  4. JavaSE入门学习51:多线程编程(二)
  5. java表达式由什么组成_必知必会之Lambda表达式
  6. Windows8.1硬盘安装Ubuntu14.04以及卸载Ubuntu14.04参考教程[图]
  7. 安卓逆向_20 --- 模拟器检测、反调试检测、ELF动态调试、__libc_init 下断
  8. php strncmp,PHP中strncmp()函数比较两个字符串前2个字符是否相等的方法
  9. 简单介绍Linux进程文件路径的获取方法
  10. LoadRunner入门教程(4)—web性能测试常用指标
  11. 阶乘末尾蓝桥杯java_Java实现第九届蓝桥杯阶乘位数
  12. C#网络编程之---TCP协议的同步通信(相互发送接收数据)
  13. 使用纯JavaScript实现全网页动态樱花飘落特效
  14. buguku 加密 wp
  15. 三星时差定位算法 matlab,三星时差定位,tri-satellites geo-location using TDOA,音标,读音,翻译,英文例句,英语词典...
  16. 过滤器Filter方法详解(init,doFileter,destory)
  17. mathtype安装
  18. int,long,long long等类型的范围
  19. 电子商务系统需求分析
  20. char* strlen()学习

热门文章

  1. 评审人喜欢的国自然基金中英文摘要是怎样的(附模板)
  2. 国家自然科学基金的“关键科学问题”(转)
  3. 达梦数据库备份还原中出现的错误
  4. 抖音自动私信Auto.js脚本源码
  5. 九齐单片机NY8B062D开发笔记(一)准备
  6. 标签编辑软件linux,Puddletag — Ubuntu下强大的Mp3标签编辑器
  7. 最新7z,sdk下载地址
  8. 带你体验最新版的DataOps 大数据平台——StreamSets ControlHub,简单到让人发指
  9. Boost库网络编程
  10. 核心概念 —— 契约(Contracts)