下图表示的是间接调用本函数。在调用f1函数过程中要调用f2函数,而在调用f2函数过程中又要调用f1函数。

从图上可以看到,这两种递归调用都是无终止的自身调用。显然,程序中不应出现这种无终止的递归调用,而只应出现有限次数的、有终止的递归调用,这可以用if语句来控制,只有在某一条件成立时才继续执行递归调用,否则就不再继续。
包含递归调用的函数称为递归函数。
【例】有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
可以用式子表述如下:
- age(n)=10 (n=1) age(n)=age(n-1)+2 (n>1)










