python 求阶乘函数
时间: 2023-10-13 13:04:43 浏览: 203
你可以使用递归或迭代的方式来实现求阶乘的函数。以下是一个使用递归方法的示例:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
这个函数会递归地调用自身,直到 n 等于 0,然后返回 1。如果 n 不为 0,则返回 n 乘以 (n-1) 的阶乘。这样就能得到 n 的阶乘。
你可以调用这个函数来计算任意整数的阶乘。例如,`factorial(5)` 将返回 120,因为 5 的阶乘是 5 * 4 * 3 * 2 * 1 = 120。
相关问题
python编写阶乘函数
在Python中编写阶乘函数是相对简单的。阶乘函数通常用数学符号"!"表示,定义为一个正整数n的所有小于等于n的正整数的乘积。例如,5的阶乘(记作5!)等于5×4×3×2×1=120。
下面是一个用Python编写的阶乘函数的示例:
```python
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n-1)
# 示例调用
print(factorial(5)) # 输出: 120
```
这个阶乘函数使用了递归的方法,递归是一种常见的编程技术,它允许函数调用自身。在上面的代码中,如果`n`是0或1,函数直接返回1,因为0!和1!都是1。否则,函数会递归地调用自身计算`n-1`的阶乘,并将其结果乘以`n`。
当然,也可以使用循环来实现阶乘函数,这种方法不需要递归,可能会更适合初学者理解:
```python
def factorial(n):
result = 1
for i in range(1, n+1):
result *= i
return result
# 示例调用
print(factorial(5)) # 输出: 120
```
在这个版本中,函数通过一个`for`循环从1迭代到`n`,每次迭代将`result`与当前的`i`相乘,最终返回结果。
python用阶乘函数求组合数
Python 中没有内置的阶乘函数,但可以使用 math 模块中的 factorial() 函数来计算阶乘。组合数的计算公式为:C(n,m) = n! / (m! * (n-m)!),因此可以将组合数的计算转化为阶乘的计算。
以下是一个求组合数的示例代码:
```python
import math
def combination(n, m):
return math.factorial(n) / (math.factorial(m) * math.factorial(n-m))
# 示例
n = 5
m = 2
result = combination(n, m)
print(f"C({n},{m}) = {result}")
```
输出:
```
C(5,2) = 10.0
```
注意,由于阶乘函数返回的是浮点数,因此计算结果也会是浮点数。如果需要得到整数结果,可以使用 int() 函数将结果转换为整数。
阅读全文