C++函数的嵌套调用和递归调用学习教程

2020-01-06 13:48:52刘景俊

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

C++函数的嵌套调用和递归调用学习教程

从图上可以看到,这两种递归调用都是无终止的自身调用。显然,程序中不应出现这种无终止的递归调用,而只应出现有限次数的、有终止的递归调用,这可以用if语句来控制,只有在某一条件成立时才继续执行递归调用,否则就不再继续。

包含递归调用的函数称为递归函数。

【例】有5个人坐在一起,问第5个人多少岁?他说比第4个人大两岁。问第4个人岁数,他说比第3个人大两岁。问第3个人,又说比第2个人大两岁。问第2个人,说比第1个人大两岁。最后问第1个人,他说是10岁。请问第5个人多大?

每一个人的年龄都比其前1个人的年龄大两岁。即:

 

 
  1. age(5)=age(4)+2  age(4)=age(3)+2 
  2. age(3)=age(2)+2  age(2)=age(1)+2 
  3. age(1)=10 

可以用式子表述如下:

 

 
  1. age(n)=10 (n=1)  age(n)=age(n-1)+2 (n>1)