检查点
什么是递归?
了解递归的概念。
递归简介
假设你正在排队购买电影票,你想知道票价,但只有队列中的第一个人知道价格。
你可以直接向第一个人询问票价。然而,如果你离开队伍,别人就会占据你的位置。因此,你必须采用以下方法:
- 你向你前面的人询问票价。
- 那个人也不愿意离开队伍,于是他们也会向更前面的人提出同样的问题。这个过程会一直持续,直到问题被问到队列中的第一个人。
- 第一个人会告诉票价。之后,队伍中的每个人都会通过前面的人得知票价。
我们如何将这个问题转化为代码呢?这时,递归就派上用场了。
第一个人向前面的人询问票价,就像在一个函数内部调用另一个函数一样。而前面的人继续向更前面的人询问,就像是在函数内部再次调用自身,但参数不同。
一个函数在执行过程中不断调用自身,直到满足某个条件为止,这样的函数称为 递归函数。函数不断调用自身的过程称为 递归。
示例程序
为了用 C++ 解决刚才讨论的购票问题,我们将编写一个名为 ticket_price 的函数,它会在自身内部不断调用自己,直到到达队列中的第一个人。
运行下面的代码,查看输出结果!
📝
person的值不能为负数。
1#include <iostream> 2 3using namespace std; 4 5int ticket_price(int person) { 6 int price; 7 if (person == 1) { 8 price = 100; 9 return price; 10 } 11 else 12 person--; 13 return ticket_price(person); 14} 15 16int main() { 17 int price; 18 price = ticket_price(5); 19 cout << "票价 = " << price << endl; 20}
Quiz
单选题
一个在自身主体中调用自身的函数被称为:
1 / 1