是的這是作業。我不是要求任何簡單的答案,只是幫助朝着正確的方向前進。這裏是賦值:「創建一個接收兩個數字的函數:a和b,該函數計算並返回a和b之間所有數字的相乘,創建該函數的三個版本。」 我使用for循環和while循環創建了函數,但我很遺憾如何使用遞歸 - 作業的最後部分。使用遞歸在兩個給定變量之間乘以所有整數
回答
承認這是一個家庭作業的問題。因此,雖然我不會給你答案,但我會給你一些指示。
當編寫一個遞歸函數,都需要考慮兩個關鍵的東西:
- 什麼停止遞歸,
- 會發生什麼,直到遞歸停止
在你的情況,其中,你必須計算一個數字列表的產品,這可以解釋爲:
- 應該怎樣該函數在列表中只有一個項目時執行? (即:當a和b相同時)
- 如何將一個元素乘以列表的其餘部分的乘積?
要獲得額外功勞,請查找尾遞歸併瞭解爲什麼它可以幫助您減少內存使用量。
這會給你足夠的開始嗎?
這是一個簡單的dynamic programming實例 - 您從一個問題開始,嘗試通過將問題分解爲易於解決和組合結果的問題來解決問題。
然後,您通常可以通過反向工作來攻擊這些問題:最簡單的情況是什麼,您可以立即回答?如果問題比這更難解決,你會怎麼做?
正如您已明確告訴您要找到遞歸解決方案,您可以假設您正在尋找一種方法,可以直接返回結果,或者必須使用修改後的參數調用其自身,並對結果進行處理得到它自己的。
如果這個問題有點虛幻,那麼考慮查看一下如何從字面上實現一個使用遞歸結構的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. 在不使用循環的情況下在java中的兩個整數之間乘以所有數字
- 3. 在兩個類之間傳遞變量
- 4. 批量中乘以兩個整數
- 5. 如何使用遞歸求和一個給定整數以下的所有整數
- 6. 遞歸函數乘以
- 7. 使用遞歸編碼整數乘法函數(在C中)
- 8. php +檢查變量值是否在兩個整數之間
- 9. Sencha Touch 2;在兩個函數之間傳遞變量
- 10. 給定兩個變量,測試其他變量是否在它們之間
- 11. 用兩個增量遞歸
- 12. 如何獲得沒有遞歸的給定數字的階乘?
- 13. 在兩個測試用例之間傳遞變量?
- 14. 在兩個JavaScript模塊之間傳遞變量不起作用
- 15. 在PHP中的兩個Ajax調用之間傳遞變量
- 16. MySQL - 使用會話變量列出兩個給定日期之間的所有日期
- 17. 在兩個方法之間傳遞一個變量
- 18. 在兩個文件之間傳遞一個變量javascripts
- 19. 列出兩個給定值之間的所有值
- 20. Android如何獲得兩個給定點之間的所有點?
- 21. 乘以兩個長整數C
- 22. 使用遞歸沒有局部變量
- 23. 遞歸連接兩個整數
- 24. 僅使用遞歸函數和遞增乘以C
- 25. 編寫一個遞歸函數,將以降序排列n和1之間的所有整數
- 26. 乘以二進制給出的兩個整數
- 27. 使用Matlab查找3D中兩個給定點之間的所有點?
- 28. r中的遞歸乘以
- 29. 給定總和的整數子陣列,使用遞歸C
- 30. 使用兩個因變量的迴歸
發佈您的代碼。 –