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,"   ";
}
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;
}
}
}
}
}
网友评论