递归的概念 我对递归的理解: 我感觉递归就是在函数里调用函数本身,然后来解决一些平时解决起来很麻烦的题目,我们在学习的过程中老师给我们列举了菲波那切数列用递归方法解决的思路,菲波那切数列的每一项都等于他的前两项之和(从第三个数字开始,第一个数字和第二个都为1),如果用普通方法来解决的话代码量就会大一点,而且比较繁琐,如下: int fib(int n) { int a = 1;//定义前两个数字 int b = 1; int fib = 0; for (int i = 1; i <= (n - 2); i++) { fib = a + b; a = b; b = fib; } return fib; } 但是如果使用递归的话代码量就会缩减很多,如下: int fib(int in) { if (in <= 2) { return 1; } else { return fib(in - 1) + fib(in - 2); } } 使用递归的方法可以在函数内部调用它自己,代码量就会大量的缩减,而且用递归的方法可以更加明确的看出菲波那切数列的公式。 虽然递归的方法很简洁,但是在有些地方却并不适用,比如我要求出第50个菲波那切数(不考虑溢出),那么电脑将会一层一层的调用这个函数,计算机的工作量是极其巨大的,当我运行程序之后,电脑需要进行将近十分钟的计算才