我試圖解決Coderbyte挑戰,我仍然試圖完全理解遞歸。使用遞歸添加持久性
下面是問題:使用JavaScript語言,使用AdditivePersistence(num)函數獲取傳遞的num參數,它始終是一個正整數並返回它的附加持久性,這是您必須添加數字的次數直到你達到一個數字。例如:如果num是2718,那麼你的程序應該返回2,因爲2 + 7 + 1 + 8 = 18和1 + 8 = 9,並且你停在9上。
這裏是我放入jsfiddle.net來嘗試的解決方案出:
function AdditivePersistence(num) {
var count=0;
var sum=0;
var x = num.toString().split('');
for(var i=0; i<x.length; i++) {
sum += parseInt(x[i]);
}
if(sum.length == 1) {
return sum;
}
else {
return AdditivePersistence(sum);
}
}
alert(AdditivePersistence(19));
它告訴我,有太多的遞歸。是否還有另一個「其他」我可以把基本上只是重新運行的功能,直到總和是一位數?
您的函數不返回附加的持久性。它返回所有求和結束時得到的一位數字。你永遠不會增加計數器,這是你應該計算的。 – Barmar 2015-04-03 02:20:05
嘗試使用調試器逐步執行代碼。 – 2015-11-01 12:41:56