##猴子搬香蕉 ##
一只猴子边上有100根香蕉,猴子距离家有50米,猴子一次顶多搬50根香蕉,但猴子每走一米就要吃掉一根,问猴子最多能拿多少香蕉回家?
这道题要考虑的问题是:怎样能让回家的米数小于手上拿的香蕉树,这样回家时还能吃剩香蕉。所以这个猴子在搬香蕉过程中要先来回搬,搬到一定米数这样剩下的香蕉就能大于回家的米数。
for ($i=0; $i <=50 ; $i++) {
# code...
if (100-$i*3 <= 50 and 50-$i > 0) {
# code...
$b=50-2*$i;
if ($b>=0) {
# code...
echo $b."
";
}
}
}
?> 输出结果 最大的是 16
##打印0-300,不包含300,没有4的自然数 ##
这时候就要用编程思维,并不是数学思维。 用for循环分别循环百位十位和个位,去除出现4的情况就可以了
for ($x=0; $x < 3 ; $x++) {
# code...
for ($y=0; $y <9 ; $y++) {
# code...
for ($z=0; $z <9 ; $z++) {
# code...
if ($y != 4 and $z != 4) {
# code...
echo $x*100+$y*10+$z."
";
}
}
}
}
?>
水仙花数
就是一个三位数,个位十位百位的立方和等于该数。 用到pow(数,开方数)
for ($x=0; $x < 9 ; $x++) {
for ($y=0; $y <9 ; $y++) {
# code...
for ($z=0; $z <9 ; $z++) {
# code...
$i=$x*100+$y*10+$z;
$n=pow($x, 3)+pow($y, 3)+pow($z, 3);
if ($n==$i and $i>100) {
# code...
echo $i."
";
}
}
}
}
?>