<?php
function monkeyEat1($d=1) {
//$i第几天
//$n第几天的枣子数
for($i=10, $n=1; $i>=$d; --$i) {
echo '第', $i, '天,有', $n, '个枣子<br>';
//修改枣子数量
if($i != $d) {
//算前一天的数量
$n = 2*$n+2;//2*($n+1)
}
}
return $n;
}
echo monkeyEat1(1);
echo '<hr>';
function monkeyEat2($d=1) {
//出口
if($d == 10) {
echo '第', $d, '天,有', '1', '个枣子<br>';
return 1;
}
//递归点
$n = 2*(monkeyEat2($d+1)+1);
echo '第', $d, '天,有', $n, '个枣子<br>';
return $n;
}
echo monkeyEat2(1);
//function monkeyEat2($d=1) {
// //出口
// if($d == 10) {
// return 1;
// }
// //递归点
// return 2*(monkeyEat2($d+1)+1);
//}
//monkeyEat2(1);
echo '<hr>';
/**
* @param $lines int 总行数
*/
function yanghui($lines) {
echo '<table>';
for($i=1; $i<=$lines; ++$i) {
echo '<tr>';
for($j=1; $j<=$i; ++$j) {
echo '<td>';
//第一列,对角线
if($j==1 || $j==$i) {
echo $data[$i][$j] = 1;//先赋值,再输出
} else {
echo $data[$i][$j] = $data[$i-1][$j] + $data[$i-1][$j-1];
}
echo '</td>';
}
echo '</tr>';
}
echo '</table>';
}
yanghui(100);
//
// 1
// 1 1
// 1 2 1
// 1 3 3 1
//1 4 6 4 1
<?php
//确定行数
$lines = isset($_GET['l']) ? $_GET['l'] : 5;
//$line 表示行号
//$space = $lines-$line;//每行的前导空格
//$star = 2*$line - 1;//m每行的星星数量
//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
//先输出前导空格,控制空格的数量
for($space=1; $space<=$lines-$line; ++$space) {
echo ' ';
}
//再输出星星,控制星星的数量
for($star=1; $star<=2*$line-1; ++$star) {
echo '*';
}
//输出换行
echo "<br />";
}
echo '<hr>';
//在输出星星时,应该第一个和最后一个是星星,其他的是空格
//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
//先输出前导空格,控制空格的数量
for($space=1; $space<=$lines-$line; ++$space) {
echo ' ';
}
//再输出星星,控制星星的数量
for($star=1; $star<=2*$line-1; ++$star) {
//判断应该输出星星还是空格
if($star==1 || $star==2*$line-1) {
echo '*';
} else {
echo ' ';
}
}
//输出换行
echo "<br />";
}
echo '<hr>';
//在输出星星时,应该最后一行或者第一个和最后一个是星星,其他的是空格
//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
//先输出前导空格,控制空格的数量
for($space=1; $space<=$lines-$line; ++$space) {
echo ' ';
}
//再输出星星,控制星星的数量
for($star=1; $star<=2*$line-1; ++$star) {
//判断应该输出星星还是空格
if($line==$lines || $star==1 || $star==2*$line-1) {
echo '*';
} else {
echo ' ';
}
}
//输出换行
echo "<br />";
}
echo '<hr>';
//在输出星星时,应该第一个和最后一个是星星,其他的是空格
//外层循环控制行号
for($line=1; $line<=$lines; ++$line) {
//先输出前导空格,控制空格的数量
for($space=1; $space<=$lines-$line; ++$space) {
echo ' ';
}
//再输出星星,控制星星的数量
for($star=1; $star<=2*$line-1; ++$star) {
//判断应该输出星星还是空格
if($star==1 || $star==2*$line-1) {
echo '*';
} else {
echo ' ';
}
}
//输出换行
echo "<br />";
}
for($line=$lines-1; $line>=1; --$line) {
//先输出前导空格,控制空格的数量
for($space=1; $space<=$lines-$line; ++$space) {
echo ' ';
}
//再输出星星,控制星星的数量
for($star=1; $star<=2*$line-1; ++$star) {
//判断应该输出星星还是空格
if($star==1 || $star==2*$line-1) {
echo '*';
} else {
echo ' ';
}
}
//输出换行
echo "<br />";
}
echo '<hr>';
//1 2 3 4 5 4 3 2 1
//-4 -3 -2 -1 0 1 2 3 4(数轴)
//4 3 2 1 0 1 2 3 4(绝对值)
for($i=-4; $i<=4; ++$i) {
echo $i, ' ';
echo abs($i), ' ';
echo 5-abs($i);
echo '<br>';
}
echo '<hr>';
for($i=-($lines-1); $i<=$lines-1; ++$i) {
//计算$line
$line = $lines - abs($i);
//先输出前导空格,控制空格的数量
for($space=1; $space<=$lines-$line; ++$space) {
echo ' ';
}
//再输出星星,控制星星的数量
for($star=1; $star<=2*$line-1; ++$star) {
//判断应该输出星星还是空格
if($star==1 || $star==2*$line-1) {
echo '*';
} else {
echo ' ';
}
}
//输出换行
echo "<br />";
}
<?php
$m = isset($_GET['m']) ? $_GET['m'] : 12;
$n = isset($_GET['n']) ? $_GET['n'] : 8;
//判断mn的大小
if($m>$n) {
$big = $m;
$small = $n;
} else {
$big = $n;
$small = $m;
}
//循环,从小的开始,到 1
for($d=$small; $d>=1; --$d) {
//判断是否可以整除
if($small%$d==0 && $big%$d==0) {
echo "$m, $n 的最大公约数为$d";
break;
}
}
//
//12 % 8 == 4
//8 % 4 == 0
//8 % 12 == 8;
//12 % 8 == 4;
//8 % 4 == 0;
echo '<hr>';
do {
$mod = $m % $n;//取模
//将原来的除数变成被除数
$m = $n;
//再将模数,变成除数
$n = $mod;
} while($mod != 0);
echo '最大公约数为:', $m;