PHP数字模式



我一直在努力让它发挥作用,但似乎无法发挥作用。

public function MarioFlagpole($a){
$x = 1;
if(is_numeric($a)){
for ($i=2; $i<=$a+1; $i++){
for($k = $a-1; $k > $i; $k--){
echo "&nbsp;&nbsp;";
}
for ($j=1; $j<=$i; $j++){
echo $x;
$x++;
}
echo "<br>";
}
}
else{
echo "Invalid Input";
}
}

如果$a=5 ,输出应该是这样的

12
345
6789
1011121314
151617181920

但我一直得到这个输出

12
345
6789
1011121314
151617181920

您可以将每一行的数字连接起来,并将它们视为字符串。在rows数组中收集所有这些行。现在,计算每一行的空间通过用最后一行减去当前行的长度,差就是许多空间。我通常更喜欢使用PHP CLI来检查我的输出,但我添加了<br/>&nbsp;供您在浏览器上检查。

<?php
function MarioFlagpole($a){
if(!is_numeric($a)) return "Invalid Input";
$rows = []; 
$x = 1;
for ($i=2; $i <= $a+1; $x += $i , $i++){  
$y = $x;
for ($j=1; $j < $i; $j++){
$y = $y . ($x + $j);                        
}        
$rows[] = $y;       
}   

foreach($rows as $row){
echo str_repeat("&nbsp;", strlen($y) - strlen($row)),$row,"<br/>";
}
}
MarioFlagpole(5);

相关内容

  • 没有找到相关文章

最新更新