我的代码的输出应为:
*
**
***
****
*****
我目前正在使用带有嵌套for循环的代码来获取结果。
for($lineNumber=1;$lineNumber<=5;$lineNumber++) {
for($starCount=1;$starCount<=$lineNumber;$starCount++) {
echo("*");
}
echo("<br />");
}
我需要能够在没有嵌套for循环的情况下获得相同的结果,而且我很难过。我唯一想要使用的是单个for循环。没有其他的。没有ifs,开关或其他循环。
谢谢!
答案 0 :(得分:5)
$str = '';
for($lineNumber=1;$lineNumber<=5;$lineNumber++) {
$str = $str . '*';
echo $str;
echo("<br />");
}
使用此字符串累加器不需要第二次循环。
答案 1 :(得分:2)
使用此:
for($lineNumber=1;$lineNumber<=5;$lineNumber++) {
echo str_repeat("*",$lineNumber);
echo("<br />");
}
答案 2 :(得分:0)
这些是绘制金字塔的一些示例:
function print($n)
{
//example 1
for ($x = 1; $x <= $n; $x++) {
for ($y = 1; $y <= $x; $y++) {
echo 'x';
}
echo "\n";
}
// example 2
for ($x = 1; $x <= $n; $x++) {
for ($y = $n; $y >= $x; $y--) {
echo 'x';
}
echo "\n";
}
// example 3
for($x = 0; $x < $n; $x++) {
for($y = 0; $y < $n - $x; $y++) {
echo ' ';
}
for($z = 0; $z < $x * 2 +1; $z++) {
echo 'x';
}
echo "\n";
}
}