递归函数就是自己调用自己,这样就是递归调用。
在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。
一般递归函数用来求阶乘、连加、连乘都会非常简单,下面写一个用普通函数和递归函数分别求阶乘的代码,比较下两个函数。
输出结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
递归函数n=10 递归函数n=9 递归函数n=8 递归函数n=7 递归函数n=6 递归函数n=5 递归函数n=4 递归函数n=3 递归函数n=2 递归函数n=1 递归函数计算阶乘3628800 普通函数n=10 普通函数计算阶乘3628800 |
从代码fun1递归函数和fun2普通函数,用递归函数实现的功能,用循环其时也都可以处理,但递归函数实现逻辑更清楚,从上面可以看出fun1递归函数求解阶乘代码更有可读性,更简洁。
递归函数在定义是一定要记得加结束递归的条件,不然会一直递归下去“无穷递归”。fun1递归函数结束条件是 if(n==1),在设计递归函数时根据实际选择结束递归条件,切记!!!