2014-12-08 3 views
-1

Меня попросили сделать пирамиду и перевернутую пирамиду с использованием петель в 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/>"; 
} 

Результат должен быть таким:

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

***** 
**** 
*** 
** 
* 
+1

ли это. .. домашнее задание? Один намек: 'str_repeat()'. – Wrikken

+0

Почему бы просто не инвертировать логику? В конце концов, как написано, вы уже создаете уменьшающуюся пирамиду, но пространства ... –

+0

Нет, это часть нашей программы, и я хотел сделать это заранее. – console

ответ

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 />"; 
} 

Выход:

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

***** 
**** 
*** 
** 
* 
+0

@console Но это работает правильно? – Rizier123

+0

Спасибо вам: D – console

+0

@console Приветствую вас! Хороший день: D – Rizier123

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 />"; 
    } 
} 

EDITED с проверкой.

+0

Пользователь поставит свою собственную высоту, он поместит его в текстовое поле, а выход должен быть тем, что он положил в текстовое поле. – console

+0

Да, мой код просто для демонстрации. Просто замените '$ height = 20' на' $ height = $ _POST ["height"]; ' – vaso123

+0

проверить мой отредактированный код. – vaso123

0

Следующая в то время как петля удовлетворяет перевернутый треугольник

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

Вы уже печать пирамиды, но ваш код, кажется немного сложным для обратной попробовать код ниже

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

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

     echo "<br/>"; 
    } 
+0

Я попробую это. – console

Смежные вопросы