数字の合計を返す再帰関数を作成しようとしています。しかし、以下のプログラムはそのトリックをしていないようです。再帰関数の桁数の和R
getSum = function(i) {
if (i < 0) {Print("Please enter a positive number")}
if (i >= 0) {getSum(i - floor(i/10) - i %% 10) + floor(i/10) + i %% 10}
それは2つのエラーを与える:
Error: evaluation nested too deeply: infinite recursion/options(expressions=)?
Error during wrapup: evaluation nested too deeply: infinite recursion/
options(expressions=)?
誰かが私を助けてもらえますか?
基本的なデバッグ手法を実証しています:簡単な例を通して考えます。 'getSum(1)'を呼び出したとしましょう、どうしますか? 'getSum(0)'はどうでしょうか?私はちょうどそれを試してみることをお勧めしますが、あなたの仕事を確認するためにあなたの関数の中にいくつかの 'print'ステートメントを追加することもできます。 – Gregor
また、スペースバーは、コードの読み取りを容易にすることができます。 – Gregor
私はそれを持っていると思う:それは最終的に起こるgetSum(0)が繰り返され続けます。それでもそれはまだ動作しません。 – Cardinal