关键词

python 如何求N的阶乘

求一个数的阶乘是一个常见的问题,对于Python来说,实现起来非常简单。
下面是Python求一个数n的阶乘的完整攻略:

实现方式一:使用循环语句

在Python中,我们可以使用for循环语句来求解一个数n的阶乘。具体实现过程如下:

# 定义一个函数,输入为一个整数n
def factorial(n):
    ans = 1 
    for i in range(1, n+1):
        ans *= i
    return ans

我们可以将上述代码保存为一个.py文件后,在控制台中输入以下命令即可运行:

python filename.py

或者在Python交互式环境中输入以下命令:

import filename
filename.factorial(n)

例如,计算5的阶乘可以这样实现:

factorial(5)

输出结果为:120

实现方式二:使用递归

Python中的函数也可以实现递归。下面是使用递归的实现方式:

# 定义一个函数,输入依然是一个整数n
def factorial_recursion(n):
    if n == 1:
        return 1
    return n * factorial_recursion(n-1)

我们同样可以将上述代码保存为一个.py文件,然后在控制台或Python交互式环境中调用函数来计算任意数的阶乘。例如:

factorial_recursion(5)

输出结果为:120

值得注意的是,递归的实现方式虽然看上去比循环好理解,但如果数据量过大,容易引起递归调用的层数过多,从而导致栈溢出等问题。因此,在对于特别大的数据,我们一般用循环的方式来实现。

本文链接:http://task.lmcjl.com/news/13421.html

展开阅读全文