W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
前面的例子中,我使用了臨時變量,這樣便于把步驟講清楚,代碼也容易調(diào)試,但是我們也可以少寫幾行:
int factorial (int n) {
if (n == 0) {
return 1;
} else {
return n * factorial (n-1);
}
}
從現(xiàn)在開始,我傾向于使用更簡潔的版本,但我仍然建議你在開發(fā)過程中使用更清晰的版本。當代碼正常工作后,如果你能感到鼓舞的話,可以收緊代碼。
除了階乘,另一個經(jīng)典的例子是遞歸定義的數(shù)學函數(shù)fibonacci,它定義如下:
fibonacci(0) = 1
fibonacci(1) = 1
fibonacci(n) = fibonacci(n ? 1) + fibonacci(n ? 2);
翻譯為C++,就是:
int fibonacci (int n) {
if (n == 0 || n == 1) {
return 1;
} else {
return fibonacci (n-1) + fibonacci (n-2);
}
}
如果你想跟蹤這個函數(shù)的執(zhí)行流程,即使很小的n值,都會讓你的頭爆炸了。但是根據(jù)“思路跳躍”方法,假定兩個遞歸調(diào)用工作正常(是的,可以做兩次遞歸調(diào)用),然后,很明顯將它們加起來就是正確結(jié)果了。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: