3

上司が個人的な知識の充実として私に与えてくれた運動を理解するのに問題があります。残念ながら、私はWeb上のあらゆる場所で答えを垣間見ることができず、成功していませんでした。今、私はあなたの仲間のプログラマーに目を向けています。

彼が私に頼んだのは、100から0までの単純なカウントダウンを作成することです(一度に表示できます)。これまでのところ簡単ですか?単純なforループまたはしばらくの間でも作成します。ここでの問題は、コードに割り当てがないことを要求することです。例:$[var]=[value]

割り当てなしでループを作成するにはどうすればよいでしょうか。どうすれ$i--;$i = $i - 1;カウントダウンできるのでしょうか?

私は解決できないこの問題に困惑しています。これをどのように行うことができるかについて非常に興味があるので、私は本当に答えを見つけたいと思っています。

助けていただければ幸いです。

編集

この問題は一種の2つの部分であり、最初の部分は100から0で動作させることであり、2番目の部分ではxから0であり、xはユーザーによって入力されることに注意してください。

4

2 に答える 2

4

私はあなたにいくつかのヒントを与えます、正確なコードを書くことはあなたのための練習です。

  1. 割り当てがないため、複数の値を保持できるタイプが必要です。整数のようなプリミティブ型は、ここでは直接使用できません。配列について考えてみてください。

  2. 現在、変数を使用できないため、ループを使用してから値を出力することは許可されていません。配列(または配列を操作した結果)を印刷するには、多くの方法の1つを使用します。

  3. range()関数は負のステップ値を受け入れません。数値を逆にする必要があります。

于 2013-01-22T20:24:24.690 に答える
3

私の推測では、あなたの上司は反復ではなく再帰を奨励しようとしているのでしょう。手法としての再帰は、特定の問題に対して非常にうまく機能し、プログラマーとして武器庫に入れておくべき優れたツールです。

すべてを手放すことなく、引数 (「カウントダウン」番号) を受け取り、何らかの方法でそれ自体を呼び出す関数を定義して実験してみてください。また、定義したら、それを呼び出して個別に開始する必要があります。

再帰には何らかの終了を定義する必要があることに注意してください。そうしないと、非常にうまくいかない可能性があります。始めるのに非常にうまくいかない例を次に示します: :D

<?php
  function infinity() {
    print "Whoah.";
    infinity();
  }
  infinity();
于 2013-01-22T20:40:24.420 に答える