1.前言
这一篇博客的价值,在于使用了一种处理非常大的数字乘积的方法,这些数字是存储在数组中的,这样,理论上,处理多大的数相乘,都不会有任何问题。(然而实际测试过程中,发现Python内部处理乘法的逻辑,已经采用类似的方法了,于是,理论上对阶乘的大小是没有限制的了……)
2.问题
求输入给定整数的阶乘。
2.1 名词解释
阶乘,给定一个整数 n n n, n ! = n × ( n − 1 ) × ( n − 2 ) × . . . × 1 n!=n\times(n-1)\times(n-2)\times...\times1 n!=n×(n−1)×(n−2)×...×1
3.编程解决
3.1 递归求解
3.1.1 编程思路
对于 n ! n! n!,其实可以看成 n × ( n − 1 ) ! n\times(n-1)! n×(n−1)!,根据这个递推公式,既可以直接写出递归求解的程序
3.1.2 实现代码
# 算阶乘,递归的方法
def factorial(n):
if n == 1: # 递归结束条件
return 1
else:
return n*factorial(n-1)