我正在尝试用PHP创建金字塔程序:
5
45
345
2345
12345
我试过了:
for($i=1;$i<=5;$i++)
{
for($j=1;$j<=$i;$j++)
{
echo $j;
}
echo "<br>";
}
但它正在创建一个这样的金字塔:
1
12
123
1234
12345
我在过去的6个小时内尝试过这个但是无法做到这一点。任何人都可以帮助我这样做。
提前致谢
答案 0 :(得分:2)
for($i=0;$i<5;$i++)
{
for($j=5-$i;$j<=5;$j++)
{
echo $j;
}
echo "<br>";
}
或:
for($i=5;$i>=1;$i-)
{
for($j=$i;$j<=5;$j++)
{
echo $j;
}
echo "<br>";
}
答案 1 :(得分:1)
这非常简单:
$max = 5;
echo "<pre>";
for($line=0; $line<$max; $line++) {
$min_this_line = $max-$line;
for($num = $min_this_line; $num <= $max; $num++) {
echo $num;
}
echo "\n";
}
echo "</pre>";
输出:
5
45
345
2345
12345
答案 2 :(得分:0)
我想我会声明$peak
的值,然后使用for()
循环将计数器递减为1,然后使用implode()
和range()
来构建各自的循环中的字符串。
这不会胜过两个for()
循环,但是对于相对较小的$peak
值,没有人会注意到任何性能下降。
代码:(Demo)
$peak = 5;
for ($i = $peak; $i; --$i) {
echo implode(range($i, $peak)) , "\n";
}
或具有两个循环:(Demo)
减少外循环并增加内循环。
$peak = 5;
for ($i = $peak; $i; --$i) {
for ($n = $i; $n <= $peak; ++$n) {
echo $n;
}
echo "\n";
}
两个输出:
5
45
345
2345
12345