為什么遞歸結束條件不能是 num=1;?????? 必須return 1;???
#include <stdio.h>
int getPeachNumber(n)
{
? ? int num;? ? //定義所剩桃子數
? ? if(n==10)
? ? {
? ? ? ?num=1;? ? ? ?//遞歸結束條件
? ? }?
? ? else
? ? {
? ? ? ? num = (getPeachNumber(n+1)+1)*2;? ?//這里是不應該用遞歸呢?
? ? ? ? printf("第%d天所剩桃子%d個\n", n, num); //天數,所剩桃子個數
? ? }
? ? return num;
}
int main()
{
? ? int num = getPeachNumber(1);
? ? printf("猴子第一天摘了:%d個桃子。\n", num);
? ? return 0;
}
2018-04-13
為什么return 1 是結束條件?
2018-02-12
會不會有減少賦值使過程簡化的作用??
2018-02-12
return的作用是返回調用值,也就是遞歸函數中的結束條件,遞歸函數的特點是自我調用且有完成狀態(結束條件),如果僅僅是num=1的話,就相當于沒有結束條件,畢竟機器不像人一樣看一眼就知道值要調用到哪里
2018-02-11
嗯嗯? 是的 運行結果沒有問題。但是慕課會提示遞歸的結束條件那有問題。。。。所以我就較個真? 想明白“結束條件難道必須按照慕課的寫法?”
2018-02-09
按照你的代碼,我運行的結果,沒問題啊,不需要return 1(按照你的num=1,后面return就行了)