1

何をしようとしているのか

***
**
*

そして、私はそれをこのようにやっています:

<?php
    $val = '*';
    for($i=1; $i<=3; $i++) {
            if($i == 1) {
                echo '***<br>';
            } elseif($i == 2) {
                echo '**<br>';
            } elseif($i == 3) {
                echo '*';
        }
    }
?>

これがロバのやり方だと確信しています...forループ内でwhileループを使用する必要があると思いますが、その方法はわかりません。

4

7 に答える 7

2
<?php

for($i=3;$i>0;$i--)
{
echo str_pad("*", $i,"*");
echo "<br>";
}

?>
于 2013-02-04T10:59:19.710 に答える
2

そこに行きます:

function stringTree($val = '*', $k = 3) {
    for($i = $k; $i > 0; $i--) {
            echo str_repeat($val, $i).'<br>';
        }
    }
}

次に、特定の例について、次のように呼び出すことができます。

stringTree('*', 3);

それは出力します:

***
**
*

または、先に進んでさらに大きくします。例えば:

stringTree('*', 6);

出力します:

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

または簡単に文字を変更します:

stringTree('.', 4);

出力します:

....
...
..
.
于 2013-02-04T11:02:11.530 に答える
1

使用str_repeat

str_repeat('*', 4-$i)

コード全体:

<?php
$val = '*';
for($i=1; $i<=3; $i++) {
    echo str_repeat($val, 4-$i) . '<br/>';
}
?>
于 2013-02-04T10:57:45.633 に答える
1
for ($counter = 1; $counter <= 10; $counter++)
{
    // display star, counter number of times
    for ($star_counter = 1; $star_counter <= $counter; $star_counter++)
    {
        echo "*";
    }
    echo "<br/>";
}
于 2013-02-04T11:00:47.690 に答える
1
<?php
    $val = '***';
    while($val != '')
        echo $val . '<br/>';
        $val = substr($val, 0, -1);
    }
?>

これにより、必要な数の星から始めることができ、内部ループは必要ありません。

于 2013-02-04T11:00:51.497 に答える
1

わかりやすい方法で説明します、

   $val = '*'; // Your star
    $count= 3; // Number of lines
    for($i=0; $i<$count; $i++) {
            $num= $count-$i; //number of lines to come
            for($j=0; $j<$num; $j++) {
            echo "*";
    }
    echo "<br />";
    }

出力

***
**
*

ここでテスト

于 2013-02-04T11:02:36.750 に答える
1

必須の1ライナー、これを行うための非常に多くの方法。

for($i=3; $i; print str_repeat("*", $i--) . '<br />');

楽しみのために:https ://codegolf.stackexchange.com/questions/4114/print-a-christmas-tree/6783#6783

于 2013-02-04T11:23:07.957 に答える