はいこれは宿題です。私は簡単な答えを求めていない、ちょうど正しい方向に動くのを助ける。ここでは代入があります: "aとbの2つの数値を受け取る関数を作成する関数はaとbの間のすべての数値の乗算を計算して返します。この関数の3つのバージョンを作成してください。 私はforループとwhileループを使って関数を作成しましたが、私は割り当ての最後の部分である再帰を使う方法を失っています。再帰を使って与えられた2つの変数間のすべての整数の乗算
答えて
これを認めたことは宿題です。それで、私はあなたに答えを与えませんが、私はあなたにそれに向けていくつかの指針を与えます。
再帰関数を書くときに、考慮すべき二つの重要なものがある:再帰を停止して何
- 、および
- 再帰はあなたのケースでは
を停止するまでのところ、何が起こりますあなたは数字のリストの積を計算しなければなりません。
- リストに1つの項目しかないときに機能が実行されますか? (例:aとbが同じ場合)
- リストの残りの部分の積で1つの要素を掛けることができますか?
余分なクレジットを探すには、テール再帰をルックアップして、メモリ使用量を抑えることができる理由を理解してください。
これで十分ですか?
これは簡単な例ですdynamic programming - まず1つの問題から始め、問題を解決して結果を簡単に組み合わせて解決してください。
通常、これらの問題を後ろ向きに攻撃することができます。最も簡単なケースは何か、すぐに答えることができますか?問題がそれよりも難しい場合はどうしますか?
再帰的解を見つけるように明示的に指示されているように、結果を直接返すか、変更されたパラメータで自身を呼び出す必要があるメソッドを探していると仮定できます。それ自身を得るために。
質問が少し人工的であることを考えれば、文字通り再帰構造を使用してforループを実装してから、既存のforループを直接適用する方法を検討することを検討してください。既存のソリューションを別の方法で表現する方法を検討するだけで、問題を解決するという性質について大きな疑問はありません。
function recursiveMultiplication(num1, num2) {
if (num2 == num1) {
return num2;
}
return num2 * recursiveMultiplication(num1, num2 - 1);
}
console.log(recursiveMultiplication(5, 8));
非常に正直なところ、私は今日再帰を学んだ。必要なのは奉仕と勤勉です。他の人々がこのようにコード化する方法を学ぶと、さらに簡単な形式で問題を分けることができます。D –
http://stackoverflow.com/questions/30589132/recursion-control-flow –
- 1. 2つの整数の乗算が間違った値を返す(ATMEL ATmega32A)
- 2. Prolog:2つの数値の再帰的な乗算
- 3. 与えられた2つの数値の間のパーセンテージを計算する
- 4. 与えられた長さの2つの整数のPythonパーミュテーション
- 5. 与えられた2つの数字の間にあるすべての数字を出力します。
- 6. 2つの与えられた日付の間の日数
- 7. 与えられた整数に合計した配列内の2つの整数を見つける再帰アルゴリズム
- 8. 与えられた数までのすべての要素の並列階乗計算
- 9. 与えられた2つの数値の間の倍数の密度
- 10. 2 64ビット整数のSSE乗算
- 11. 乗算2つの溢れ整数が第三
- 12. 1つの係数を使ったPythonの加算と乗算
- 13. 数字の再帰的な数え算
- 14. マトリックス**間違ったアウトプットを与える**ポインターで乗算する
- 15. 「引数の数が間違って(1を与えられたが、予想0)」
- 16. C++の関数を使った乗算
- 17. Java与えられた文字列のxを再帰的に数える
- 18. Python:与えられた2つの整数で割り切れる
- 19. [InterviewBit] 2つの整数の累乗
- 20. 与えられた2つの整数から一意整数を作るPython Numpy
- 21. 与えられた範囲内のすべての素数を見つける
- 22. 与えられた基底への整数変換
- 23. 与えられたリストの与えられた範囲のすべての数を合計するPython
- 24. Ruby - ArgumentError:引数の数が間違っています(与えられた3、予想される2)
- 25. 私は次のプログラムで間違っているc.whatの再帰関数を使って、与えられた数値の階乗を見つけたいですか?
- 26. 2つのデータリストを与えられたmathematicaの数値積分
- 27. 乗算と除算を使用して2つの数値を入れ替えます
- 28. 頭部ポインタのみが与えられた循環リンクリストのノード数を再帰的に計算する
- 29. 与えられた2つの時間に基づいて時間の長さを計算する
- 30. Prolog - クエリ変数に値を与える(リストの再帰)
コードを投稿してください。 –