1、递归函数的概念
一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。
C语言允许函数的递归调用。
在递归调用中,主调函数又是被调函数。
执行递归函数将反复调用其自身,每调用一次就进入新的一层。
这个函数是一个递归函数。但是运行该函数将无休止地调用其自身,这当然是不正确的。
为了防止递归调用无终止地进行,必须在函数内有终止递归调用的手段。
常用的办法是加条件判断,满足某种条件后就不再作递归调用,然后逐层返回。
2、思考&实现1:
有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问 第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人, 他说是10岁。请问第5个人多大?
分析:
每一个人的年龄都比其前1个人的年龄大两岁。
即: age(5)=age(4)+2
age(4)=age(3)+2
age(3)=age(2)+2
age(2)=age(1)+2
age(1)=10
可以用式子表述如下:
如果(n=1) age(1)=10
如果(n>1) age(n)=age(n-1)+2
1 int getAge(int n) 2 { 3 int age ; 4 if(n==1) 5 { 6 age = 10; 7 } 8 age = age(n-1)+2; 9 return age; 10 }
代码如下: