-1

これを印刷する必要があります:

l
li
lik
like
lik
li
l

しかし、2 つのインクリメントを持つ for ループを使用しています! まあ、基本的に私はこのようにやっていました!

$word = 'like';

for($i=0,$j=7;$i<7;$i++,$j--){
    print substr($word, 0,$i)."<br>";
} 

それは間違っています、助けてもらえますか?

4

3 に答える 3

0
$word = 'like';

for($i = 0, $x = $cnt = strlen($word); $i <= $cnt*2; $i++){
    if($i <= $cnt)
        print substr($word, 0,$i)."<br>";
    else
        print substr($word, 0, --$x)."<br>";
} 
于 2013-06-08T15:48:55.930 に答える
0
  1. ここで、ループを実行する回数forは、単語の長さの 2 倍より 1 少ない回数です。
  2. 印刷される文字数は、単語全体を一度印刷するまで増加し続け、その後減少し始めます。

したがって、コードは次のようになります。

    $word = 'like';
    $length = strlen($word);

    for($i=1, $j=1; $i < ($length*2) ; $i++ )
    {
        print substr($word, 0, $j)."<br>";
        if($i < $length)
            $j++;
        else
            $j--;
    }

いくつかのヒント:

  1. プログラムではできるだけ定数を避けてください。(入力単語が変更されると壊れるコードで 7 を使用しました!)
  2. パターン印刷の問題を練習してみてください。:-)
于 2013-06-08T15:51:17.850 に答える