金字塔和倒金字塔

时间:2014-12-08 12:20:27

标签: php html

我被要求使用 PHP 中的循环制作金字塔和倒金字塔。

我不知道如何制作倒置部分,并注意:金字塔线基于您想要输出的输入。

这是我的代码:

$height = $_POST['height'];
if($height <= 0)
{
    echo "Please write Positive Number";
}
$spacing = $height -1; 
$base = 1; 

for ($i = 0; $i < $height; $i++) 
{ 
    for ($x = $spacing; $x > 0; $x--) 
    { 
        echo " "; 
    } 
    for ($k = 0; $k < $base; $k++) 
    { 
        echo "*"; 
    } 

    $spacing --; 
    $base ++; 
    echo "<br/>"; 
}

输出应该是这样的:

*
**
***
****
*****

*****
****
***
**
*

4 个答案:

答案 0 :(得分:1)

这个怎么样:

$height = $_POST['height'];
if ($height <= 0) {
    echo "Please write Positive Number";
} else {
    for ($i = 1; $i <= $height; $i++) {
        echo str_repeat("*", $i) . "<br />";
    }
    echo '<br />';
    for ($i = $height; $i >= 1; $i--) {
        echo str_repeat("*", $i) . "<br />";
    }
}
验证

已编辑

答案 1 :(得分:0)

这应该适合你:

$height = $_POST['height'] = 5;

if($height <= 0)
    echo "Please write Positive Number";


for($count = 1; $count <= $height; $count++) {
    for($innerCount = 0; $innerCount < $count; $innerCount++)
        echo "*";   
    echo "<br />";

}

echo "<br />";

for($count = $height; $count > 0; $count--) {

    for($innerCount = 0; $innerCount < $count; $innerCount++)
        echo "*";   
    echo "<br />";
}

输出:

*
**
***
****
*****

*****
****
***
**
*

答案 2 :(得分:0)

以下while循环满足颠倒三角形

$x = 10;
while ( $x >= 1 ) {
    $y=1;
    while ($y <= $x) {
        echo "*";
        ++$y;
    }
    echo "<br/>";
    --$x;
}

答案 3 :(得分:0)

你已经打印了金字塔,但你的代码似乎有点复杂,反向尝试下面的代码

for ($i = $height; $i >= 0; $i--) {

      for ($j = 0; $j < $i; $j++){
         echo '*';
      }

       echo "<br/>";
   }