📅  最后修改于: 2023-12-03 15:23:16.580000             🧑  作者: Mango
阶乘是指把一个数中所有小于等于它的正整数相乘得到的积,通常使用 ! 来表示。比如,5 的阶乘表示为 5!,其结果为 5 * 4 * 3 * 2 * 1 = 120。
在 Python 中,计算一个数的阶乘可以使用循环或递归的方式实现。
使用循环来计算一个数的阶乘,需要从 1 开始递增,将得到的每个数与之前的积相乘,直到达到目标数为止。
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
在上面的代码中,我们定义了一个名为 factorial
的函数,它接受一个整数 n 作为参数,并返回 n 的阶乘。在函数内部,我们初始化了变量 result
为 1,然后使用 for 循环递增变量 i,将 result
乘以 i。最后,函数返回 result
。
执行以下代码:
print(factorial(5))
输出结果:
120
递归是指在函数内部调用自身,直到满足某个条件才停止。使用递归计算阶乘的思路是将问题分解为规模更小的子问题,并重复调用函数来解决。
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
在上面的代码中,我们定义了一个名为 factorial
的函数,它接受一个整数 n 作为参数,并返回 n 的阶乘。在函数内部,我们检查 n 是否等于 0 或 1,如果是,则返回 1;否则,递归调用函数并返回 n 与函数返回值的乘积。
执行以下代码:
print(factorial(5))
输出结果:
120
以上就是在 Python 中获取数字的阶乘的两种实现方式:循环与递归。无论使用哪种方法,我们都可以得到正确的结果。如果要计算更大的数的阶乘,可以使用 Python 的大数库,例如 decimal
或 gmpy2
。