一个数的阶乘就是这个数连乘每个比前一个数小1的数,例如5的阶乘是:5 * 4 * 3 * 2 * 1,  0和1的阶乘是1.用公式实现:

fac(n) =           1                              n=1 ,n=0

                        n * fac(n - 1)              n > 1


           则可以用两种方法实现:递归,循环,实现如下所示:

阶乘的递归和非递归实现


阶乘的递归和非递归实现

两种方法均可解决问题,递归法代码量会少于循环实现,当然在系统内存的方面,递归法比起循环会占用更多的开销。


相关文章: