问答详情
源自:5-9 递归函数练习

求问 为什么这样也能得出答案?

#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 09:29

个回答

  • 努力提升
    2015-12-25 09:53:03

    当年你的传值 1到递归函数时,执行4次num=(getYears(n+1)+2);一直到n == 5//这期间每执行一次n都会加1,就是然后这个+2的运算也会执行4次,就是8,当n == 5,返回一个10,所以当递归结束时num = 2+2+2+2+10 就是18