求問 為什么這樣也能得出答案?
#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個人的年齡是%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個人的年齡是%d歲", num);?
return 0;
}
2015-12-25
舉報
2015-12-25
當年你的傳值 1到遞歸函數時,執行4次num=(getYears(n+1)+2);一直到n == 5//這期間每執行一次n都會加1,就是然后這個+2的運算也會執行4次,就是8,當n == 5,返回一個10,所以當遞歸結束時num = 2+2+2+2+10 就是18