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