遞歸結束條件“return 1"為什么換做 ”num=1"也同樣可以執行呢?請大神指教~
#include <stdio.h>
int getPeachNumber(n)
{
??? int num;??? //定義所剩桃子數
??? if(n==10)
??? {
?????? return 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;
}
為什么遞歸結束條件“return 1"換做 ”num=1"也同樣可以執行呢?請大神指教~
2015-11-20
return 1會立即返回1,
改成num = 1,程序則會執行函數末尾的return num,其中num=1;
實際效果一樣,都是返回1