1、通过for循环将数组中值求和、求平均值
$num=[1,2,30,5,4,9];
$sum=0;
for($i=0,$n=count($num);$i<$n;$i++){
$sum+=$num[$i];
}
echo '和是:'.$sum,'<br>';
echo '平均值是:'.number_format($sum/count($num),1); //精确到小数点后面一位
2、数组翻转
$stu=['tom','berry','jeck','rose','ketty'];
for($i=0,$j=count($stu)-1;$i<$j;$i++,$j--){
[$stu[$i],$stu[$j]]=[$stu[$j],$stu[$i]];//元素交换
}
print_r($stu)
3、遍历二维数组
$stu=[
[1,2,3,4],
['tom','jery','rose','ketty']
];
for($i=0;$i<count($stu);$i++){ //循环第一列
for($j=0;$j<count($stu[$i]);$j++){ //循环第二列
echo $stu[$i][$j];
}
echo '<br>';
}
4、 循环输出1-100,其中3的倍数输出A,5的倍数输出B,15输出C
for($i=1;$i<=100;$i++){
if($i%15==0)
echo 'C';
elseif($i%3==0)
echo 'A';
elseif($i%5==0)
echo 'B';
else
echo $i;
echo ' ';
}
5、打印水仙花数
for($i=100;$i<=999;$i++){
$a=(int)($i/100); //百位数
$b=(int)(($i%100)/10); //十位数
$c=$i%10; //个位数
if($i==pow($a,3)+pow($b,3)+pow($c,3))
echo $i,'<br>'; //pow($a,3)表示$a的三次方
}
6、打印100以内的斐波那契数(迭代法)1 1 2 3 5 8 13 21 …
$num1=1;
$num2=1;
echo $num1,' ',$num2,' ';
while(true){
$num3=$num2+$num1; //第三个数是前面俩个数的和
if($num3>100) //超过100就终止循环
break;
echo $num3,' ';
$num1=$num2; //将$num2移给$num1
$num2=$num3; //将$num3移给$num2
}
7、一只猴子看守一堆桃子,第一天吃了一半后又多吃了1个,第二天一样,到第十天的时候就剩下一个桃子,请问原来有几个桃子?
// 分析
// f(n)-(f(n)/2+1)=f(n+1)
// =>f(n)/2-1=f(n+1)
// =>f(n)=(f(n+1)+1)*2
function getTao($n){
if($n==10)
return 1;
return (getTao($n+1)+1)*2;
}
echo getTao(1); //1534