我很難弄清楚如何使用遞歸來使數字加倍,問題是函數必須是靈活的,它必須能夠被調用來加倍數字,然後加倍結果再次繼續,直到停止。例如,每當你戳到一個粘液時,我就需要用遞歸來表示這個(1-> 2-> 4-> 8-> 16),然而當我努力的時候我已經撞到了牆上很好地理解遞歸。在C++中使用遞歸來重複一個數字
我開始喜歡的東西
int doublesomething(int N, int X){
return N * X;
}
然後把這個到另一個函數,但我一無所獲搞清楚如何給它沒有功能的循環加倍和重置數字,我會鏈接代碼我這裏只有老老實實只是胡言亂語,因爲我已經那種自己失去了下來遞歸
int doublethis(int times){
if (times == 0){
return 0;
} else {
int number;
doublesomething(2 , number);
int doubled = doublethis(times - 1);
}
return doubled;
}
的兔子洞,這是據我已經得到了,我認爲這是極其錯誤的。
你是否需要''recursion?至於功課還是什麼的? – Jcl 2014-12-05 05:59:19
是的,它必須具有一個函數,其中有一個參數可以加倍,並返回剩下的數量。我試圖避免發佈實際的作業,所以我學到了一些東西,但我無法弄清楚如何使用遞歸來加倍數字。 我在考慮讓一個函數在第二個函數中加倍和調用它。 – defury 2014-12-05 06:03:36
你不能用單個參數遞減(除非你將中間結果存儲在函數外的某個變量中),你需要存儲中間數字並傳遞它,並且你需要一個停止條件(這應該是當'你的函數中的times參數達到1) – Jcl 2014-12-05 06:05:11