在c语言中递归是一种可以大量减少代码量的方法,学会递归,可以帮助我们在函数的使用中减少大量打码时间,且递归也更容易想到。简单来说,递归就是在一定限制条件下在函数内调用该函数,且随着递归的进行,越来越接近该限制条件。其中限制条件是必须有的,且必须逐渐接近该限制条件,防止无限递归使其栈溢出。
在某些条件下,递归十分好用。简单举个例子。
不用递归的情况下求费不那契数列十分难想,我们要设置很多个变量来求费不那契数列。但是如果我们用递归的方法,可能就短短几步就完成了。
但是不是所有情况下用递归都是最好的方法,我们还要考虑会不会调用太多使其运算过慢。
用递归的方法无法加载出来,但不用递归可以加载出来。尽管因为数字太大无法加载出来,但递归甚至无法加载出。同样是求费不那契数列,为啥递归无法加载出来呢?
用全局变量计算一下,求第三十个费不那契数列时,我们要引用n==3就高达1664079次,那其他要引用多少呢?
所以,我们用递归的时候应该慎重,当用递归确实是最简单的就用递归,当用递归可能造成栈溢出等问题时,不要用递归。