我是网络编程的新手,最近开始使用PHP。我写了一些代码来制作一个“直角三角形”。我认识到使用& nbsp是解决方案的一部分,但我把它放在每个可能没有运气的地方,所以任何建议都会被赞赏。下面你会发现编码/电流输出/所需输出:
$x = 10;
while ( $x >= 1 ) {
$y=1;
while ($y <= $x) {
echo "*";
++$y;
}
echo "<br/>";
--$x;
}
output:
**********
*********
********
*******
******
*****
****
***
**
*
desire output:
**********
*********
********
*******
******
*****
****
***
**
*
答案 0 :(得分:1)
这是我的建议;没有while
s,但使用for
循环(和str_repeat()
s)。
echo '<pre>'; // just here for display formatting
// $x = current number of *
// $t = total number of positions
for( $x = $t = 10; $x > 0; $x-- )
{
// repeat ' ' $t - $x times
// repeat '*' $x times
// append '<br>'
echo str_repeat( ' ', $t - $x ) . str_repeat( '*', $x ) . '<br>';
}
一个while
循环:
echo '<pre>'; // just here for display formatting
$x = $t = 10;
while( $x > 0 )
{
echo str_repeat( ' ', $t - $x ) . str_repeat( '*', $x ) . '<br>';
--$x;
}
要echo
原始三角形,只需切换str_repeat()
s。
答案 1 :(得分:0)
每行需要10个字符,n
asterix和10 - n
个空格。知道这一点,你只需要在里面添加另一个循环来控制输出多少空格!
简单的事情:
$x = 10;
while ( $x >= 1 ) {
$spaces = 1;
while($spaces <= 10 - $x)
{
echo " ";
++$spaces;
}
$y=1;
while ($y <= $x) {
echo "*";
++$y;
}
echo "<br/>";
--$x;
}
答案 2 :(得分:0)
<?php
$num = 10;
$char = '*';
$string = str_repeat($char, $num);
for ($i = 1; $i <= $num; $i++)
{
printf("%{$num}s\n", $string);
$string = substr_replace($string, '', -1);
}
?>
如果您想要轻松格式化,请使用<pre>
标记。
答案 3 :(得分:0)
要创建的新代码 使用
的星三角形call_user_func()
和for loop()
星三角
*
**
***
****
*****
Php代码
<?php
/**
| Code for display star triangle using for loop
| date : 2016-june-10
| @uther : Aman kumar
*/
$sum = "*";
for($i=0;$i<=5;$i++)
{
call_user_func(function($sum) { echo $sum, "<br/>"; }, str_repeat($sum,$i));
}
?>