📜  在 python 中获取数字的阶乘(1)

📅  最后修改于: 2023-12-03 15:23:16.580000             🧑  作者: Mango

在 Python 中获取数字的阶乘

阶乘是指把一个数中所有小于等于它的正整数相乘得到的积,通常使用 ! 来表示。比如,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 的大数库,例如 decimalgmpy2