小练习

作者: Arnold_Z | 来源:发表于2016-11-16 22:53 被阅读24次

Ps:用php语言实现;2017.02.07将里面部分代码改写成函数形式。

程序1
题目:

企业发放的奖金根据利润提成:
利润低于或等于10W元时,奖金可提10%;
利润高于10W元、低于20W元时,低于10W元部分按10%提成,高于10W元不分,可提成7.5%;
20W~40W之间,高于20W提成5%;
40W~60W时高于40W部分提成3%;
60W到100W时高于60W部分提成1.5%;
100W+时,高于100W部分按1%提成。
从键盘输入当月利润,求应发放奖金总数。(用if elseif坐范围讨论)

function lirun($m){
if ($m <= 100000) {
  $r = $m * 0.1;
}elseif ($m <= 200000) {
  $m = $m - 100000;
  $r = $m * 0.075 + 10000;
}elseif ($m <= 400000) {
  $m = $m - 200000;
  $r = $m * 0.05 + 17500;
}elseif ($m <= 600000) {
  $m = $m - 400000;
  $r = $m * 0.03 + 27500;
}elseif ($m <= 1000000) {
  $m = $m - 600000;
  $r = $m * 0.015 + 33500;
}else {
  $r = ($m - 1000000) * 0.01 + 39500;
}
return $r;

}


程序2

输入三个整数xyz,找出最大数

function maxThree($a, $b, $c){
    $max = ($a > $b)?(($a > $c)?$a:$c):(($b > $c)?$b:$c);
    return $max;
}

程序3

打印出所有的“水仙花数”(Ps:水仙花数只是自幂数的一种,严格来说三位数的3次幂数才成为水仙花数。)

function shuixianhua(){
  for($i = 100;$i < 1000;$i++){
    $a = (int)($i/100);
    $b = (int)($i%100/10);
    $c = $i%10;
    if(pow($a, 3)+pow($b,3)+pow($c,3) == $i){
      echo $i . "<br />";
    }
  }
}
小练习程序3.png

程序4

猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾又吃了一个,第二天早上又将剩下的桃子吃掉一半且有多吃一个。以后每天早上都吃了前一天剩下的一半多一个。到第10天早上再吃时,只剩下1个桃子,求第一天共摘了多少桃子。

function monkey($left){
  $day = 9;
   while ($day > 0) {
    $a = ($left +1) * 2;
    $left = $a;
    $day--;
  }
  return $a;
}

程序5

有以分数序列:2/1、3/2、5/3、8/5、13/8、21/13...求出这个数列前20项之和。

function sum(){
  $a = 2;
  $b = 1;
  $sum = 0;
  while ($i <= 20) {
    $sum += $a/$b;
    $temp = $a;
    $a = $a + $b;
    $b = $temp;
    $i++;
  }
  return $sum;
}

程序6

假设某人有100,000现金。每经过一次路口需要进行一次缴费。缴费规则为当现金大于50,000时每次需缴5%;若小于等于50,000时每次交5,000。请写一程序计算此人可以经过多少次这个路口。

$i = 0;
$cash = 100000;
while ($cash >= 5000) {
  if ($cash > 50000) {
    $cash *= 0.95;
  }else {
    $cash -= 5000;
  }
  $i+=1;
}
echo '第',$i,'次过桥,剩下',$cash,'元钱';
小练习程序6.png

程序7

打印九九乘法表

for ($i=1; $i<10; $i++) {
  for ($j=1; $j<=$i; $j++) {
    echo "$i X $j =",$i * $j,"&nbsp&nbsp&nbsp";
  }
  echo "<br />";
}
小练习程序7.png

程序8

公鸡5文钱1只,母鸡3文钱1只,小鸡1文钱3只。现在用100文钱共买了100只鸡,问这100只鸡里面公鸡母鸡小鸡各多少只?

for ($g=1; $g<=20 ; $g++) {
  for ($m=1; $m<=33 ; $m++) {
    for ($x=1; $x<=100 ; $x++) {
      if (($g + $m + $x == 100) && ($g*5 + $m*3 + $x/3) == 100) {
        echo "买了",$g,"只公鸡,",$m,"只母鸡和",$x,"只小鸡。<br />";
      }else {

      }
    }
  }
}
小练习程序8.png

程序9

求1到100内的素数

for ($i=2; $i <=100 ; $i++) {
    $k = 1;
    for ($j=2; $j < $i-1 ; $j++) {
        if ($i % $j == 0) {
            $k++;
        }
    }
    if ($k == 1) {
      echo $i,"<br />";
    }
}

程序10

一种羊,第二年生一个小羊,第四年生一个小羊,第五年死。20年后有多少羊?

function yang($n){
  $arr = [$n, 0, 0, 0];
  $i = 1;
  while ($i <= 20) {
    $temp = $arr[1] + $arr[3];
    array_unshift($arr, $temp);
    array_pop($arr);
    $i++;
  }
  echo array_sum($arr);
}

程序11

n只猴子做成一个圈,按顺时针方向从1到n编号。然后从1号猴子开始沿顺时针报数,报到m的猴子出局,再从刚出局的猴子下一个开始重新报数,报到m的猴子出局,以此类推,剩下的一只猴子为王。
设计编写程序,实现如下功能:1)、要求由用户输入开始的猴子n,和报数的最后一个数字m;2)、给出当选猴王的初始编号。

function selectMonkey($n, $m){
  $arr = range(1,$n);
  $mark = 0;
      $i = 0;
  if ($n < 2) {
    echo "只有一只猴子";
    return false;
  }else {
    while ($i <= $n * $m) {
      $i++;
      foreach ($arr as $k => $v) {
        $mark++;
        if($mark == $m){
          echo $arr[$k] . "号被淘汰" . "<br />";
          unset($arr[$k]);
          $mark = 0;
        }
        if (count($arr)==1) {
          $rs = reset($arr) . "号是猴子王";
          return $rs;
        }
      }
    } 
  }
}

相关文章

网友评论

      本文标题:小练习

      本文链接:https://www.haomeiwen.com/subject/oszrpttx.html