编写函数(fact),通过递归调用,计算 n!/(m!(n-m)!) ,其中, n>m
时间: 2024-10-02 12:02:39 浏览: 47
这是一个涉及阶乘的递归函数问题,你需要编写一个名为`fact`的函数,用于计算给定整数n除以两个更小整数m和(n-m)的阶乘的商。阶乘是一个数的所有小于及等于它的正整数的积。当n小于m时,该函数应该返回0,因为不存在除法。
以下是Python语言的一个示例实现:
```python
def fact(n):
# 阶乘的基本情况
if n == 0 or n == 1:
return 1
# 递归情况,n > m 并且 (n - m) != 0
elif n > m and n - m > 0:
return (n * fact(n - 1)) // (m * fact(n - m))
else:
return 0
# 测试函数
print(fact(5)) # 输出:5, 因为 5! = 5*4*3*2*1 / (2!*3!) = 5
```
在这个函数中,我们首先检查基本情况(n=0或1的阶乘)。然后对于递归情况,我们按照阶乘的定义计算,并确保n大于m且(n-m)不为0,以避免除以零错误。
阅读全文