求問(wèn) 為什么這樣也能得出答案?
#include <stdio.h>?
int getYears(int n)
{ int num;
?if(n==5)
? {return 10;}
? else?
? {num=(getYears(n+1)+2);
? }
? return num;
? }
int main()?
{
? ? int num=getYears(1);
printf("第5個(gè)人的年齡是%d歲", num);?
return 0;
}
#include <stdio.h>?
int getYears(int n)
{ int num;
?if(n==5)
? {return 10;}
? else?
? {num=(getYears(n+1)+2);
? }
? return num;
? }
int main()?
{
? ? int num=getYears(1);
printf("第5個(gè)人的年齡是%d歲", num);?
return 0;
}
2015-12-25
舉報(bào)
2015-12-25
當(dāng)年你的傳值 1到遞歸函數(shù)時(shí),執(zhí)行4次num=(getYears(n+1)+2);一直到n == 5//這期間每執(zhí)行一次n都會(huì)加1,就是然后這個(gè)+2的運(yùn)算也會(huì)執(zhí)行4次,就是8,當(dāng)n == 5,返回一個(gè)10,所以當(dāng)遞歸結(jié)束時(shí)num = 2+2+2+2+10 就是18