递归是我们在学习编程中,必须要去学习的,虽然递归晦涩难懂 ,但是很多时候,递归的思想会很有用,但是在实际开发中,不建议使用递归,要用循环来代替递归,不然bug无穷。
-----------------------------------------------------------
问题描述:
有5个人坐在一起,
问第5个人,他说比第4个人大2岁,
问第4个人,他说比第3个人大2岁,
问第3个人,他说比第2个人大2岁,
问第2个人,他说比第1个人大2岁,
问最后一个人,他说10岁
第5个人多大?
-------------------------------------------------------------
分析如下:
ren: 1 2 3 4 5
age : x x+2 (x+2)+2 (x+2+2)+2 (x+2+2)+2
10 12 14 16 18
-------------------------------------------------------------
代码实现:
#include
#include
int age(int n)
{
int i_age;
if(1 == n)
{
i_age = 10;
}
else
{
i_age = age(n-1) + 2;
}
return i_age;
}
int main(void)
{
printf("The fifth's age is %d\n", age(5));
system("pause");
return 0;
}
-------------------------------------------------------------
运行结果:
-------------------------------------------------------------