2021PHP算法期末考试-复习试题

Posted 唥小雨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021PHP算法期末考试-复习试题相关的知识,希望对你有一定的参考价值。

  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>
    <?php
    for($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以上是关于2021PHP算法期末考试-复习试题的主要内容,如果未能解决你的问题,请参考以下文章

《软件需求分析(第二版)》期末考试试题总结/复习资料

求大神帮我答题,期末考试ing,关于php的

笔记总结计算机专业面向期末考试复习笔记专业课学习笔记课外算法与其他学习笔记

算法期末备考-第1练

数字图像处理2021期末复习考试重点大纲

数字图像处理2021期末复习考试重点大纲