为了账号安全,请及时绑定邮箱和手机立即绑定

增加星号和零的打印模式

增加星号和零的打印模式

PHP
慕盖茨4494581 2022-12-11 09:27:26
如何打印这个图案?$number = 5;for ($i=1; $i <= $number ; $i++) {     for ($j=$i; $j >= 1;$j--){        echo "0";    }    echo "\n";}印刷000000000000000我试过这样,但我对打印星号和零字符感到困惑for ($i=1; $i <= $number ; $i++) {     $sum = 0;    for ($j=$i; $j >= 1;$j--){        $sum +=$j;    }    echo $i ." => " .$sum ."\n";}印刷1 => 12 => 33 => 64 => 105 => 15
查看完整描述

4 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

您可以使用str_repeat生成所需长度的字符串。请注意,对于三角数,(1, 3, 6, 10, 15, ...)您可以将第i'th 数生成为i(i+1)/2:


$number = 5;

for ($i = 1; $i <= $number; $i++) {

    echo str_repeat('*', $i * ($i + 1) /2) . str_repeat('0', $i) . PHP_EOL;

}

输出:


*0

***00

******000

**********0000

***************00000

3v4l.org 上的演示

要更直接地生成输出的三角形部分(即从 1 到 的数字总和i),您可以使用此代码,它在每次迭代时将$i *s 和 1添加0到输出中:


$line = '';

$number = 5;

for ($i = 1; $i <= $number; $i++) {

    $line = str_repeat('*', $i) . $line . '0';

    echo $line . PHP_EOL;

}

输出:


*0

***00

******000

**********0000

***************00000

3v4l.org 上的演示


查看完整回答
反对 回复 2022-12-11
?
慕村225694

TA贡献1880条经验 获得超4个赞

这是另一种方式,它使用替换逻辑的更直白的解读。在这里,我通过获取前一行并将行号 amount 添加*到该*部分来形成每个后续行,然后只标记一个新的尾随零。


$line = "*0";

$max = 5;

$counter = 1;


do {

    echo $line . "\n";

    $line = preg_replace("/(\*+)/", "\\1" . str_repeat("*", ++$counter), $line) . "0";

} while ($counter <= $max);

这打印:


*0

***00

******000

**********0000

***************00000


查看完整回答
反对 回复 2022-12-11
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

for 循环中零的个数等于 $i。所以我们只需要计算星星的数量然后简单地做一个str_repeat


$count = 5;


for ($i=1; $i <= $count; $i++) {


  $stars = 0;

  for($j=1; $j <= $i; $j++) {

    $stars = $stars + $j;

  }


  echo str_repeat('*', $stars).str_repeat('0', $i)."\n";

}

输出:


*0

***00

******000

**********0000

***************00000


查看完整回答
反对 回复 2022-12-11
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

$line = '';


for ($i = 1; $i <= 5; $i++) {


   $line = str_repeat('*', $i) . $line . '0'; // **str_repeat()** --> getting string length


   echo $line . PHP_EOL; // **PHP_EOL** ---> represents the endline character.


}


查看完整回答
反对 回复 2022-12-11
  • 4 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信