第二节 递归
递归是一个语言中最难理解的内容之一,它是通过自己调用自己的方法,来进行运算的方法。关于递归有一个非常有意思的定义:
递归:参见“递归”
在生活中,我们也会遇到这样的递归例子:
导员:“你给任课老师请假就行了”。
任课老师:“去让你导员给你写个假条”。
其实在以前的学习中,我们也遇到过递归的思想,数学归纳法就是:
1是正整数
如果k是正整数,证明k+1也是正整数
若①和②满足,则证明序列n是正整数序列
C语言和C++是支持递归的。但是,在使用递归的时候,大家应该注意跳出递归的条件,不然就会发生上面导员和任课老师模型之间的无限循环问题。C/C++语言中的递归一般是通过函数来实现的:
1 | func(n) { |
像我们常用的求最大公约数最小公倍数的方法,和hdu2018的母牛问题,都是递归的经典题目。