编写程序求m!/(n!*(m-n)!)的值。要求:求某个数的阶乘必须用自定义的函数实现。 n<=m<=20
时间: 2023-05-31 07:19:31 浏览: 220
阶乘运算m!/n!/(m-n)!
### 回答1:
以下是Python代码实现,用于计算m!/(n!*(m-n)!)的值:
```
def factorial(num):
if num == 0:
return 1
else:
return num * factorial(num - 1)
m = int(input("请输入m的值(20以内):"))
n = int(input("请输入n的值(20以内):"))
if n <= m <= 20:
result = factorial(m) // (factorial(n) * factorial(m - n))
print(f"{m}! / ({n}! * ({m}-{n})!) 的值为:{result}")
else:
print("输入的值不符合要求")
```
首先,定义了一个名为factorial的函数,用于计算一个数的阶乘。然后,通过用户输入的值来计算m和n的值。接下来,判断输入的值是否符合要求(即n<=m<=20),如果符合要求,则计算m!/(n!*(m-n)!)的值并输出。否则,输出错误信息。
### 回答2:
题目要求编写程序求$m!/(n!*(m-n)!)$的值,这里需要用到自定义函数来计算阶乘。
在编写程序之前,我们需要先了解阶乘的定义。阶乘指从1到该数之间所有整数的乘积。比如4的阶乘为4x3x2x1=24,5的阶乘为5x4x3x2x1=120。
我们可以用递归的方法编写一个自定义函数来计算某个数的阶乘,比如:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
```
其中,如果n等于0,则返回1;否则返回n乘以n-1的阶乘。
接下来,根据题目要求,我们需要编写一个程序来求$m!/(n!*(m-n)!)$的值。代码如下:
```python
m = int(input("请输入一个正整数m(20以内):"))
n = int(input("请输入一个正整数n(小于等于m):"))
# 自定义函数计算阶乘
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n-1)
# 计算m!/(n!*(m-n)!)的值
result = factorial(m) // (factorial(n) * factorial(m-n))
print("m!/(n!*(m-n)!)的值为:", result)
```
首先,程序要求用户输入两个正整数m和n,然后调用自定义函数factorial()来计算它们的阶乘。最后,根据题目公式计算出$m!/(n!*(m-n)!)$的值。
需要注意的是,在计算$m!/(n!*(m-n)!)$的值时,我们可以使用Python中的整除运算符//,以确保结果为整数。
综上所述,通过自定义函数计算阶乘,并用程序计算$m!/(n!*(m-n)!)$的值是非常简单的。
### 回答3:
题目中要求我们计算m!/(n!*(m-n)!)的值,我们可以把它拆开,变成m*(m-1)*…*(m-n+1)/n!。
接着,我们可以定义一个函数来计算阶乘,以便之后使用。函数的基本原理是递归,即如果n等于1,则返回1;否则,返回n*阶乘(n-1)。
接下来,我们可以使用循环来实现计算m!/(n!*(m-n)!)的值。我们需要做的是定义一个变量result,并将其初始化为1,然后从m到m-n+1循环遍历,每次乘以当前的数,即result=result*i。最后,将result除以n!就可以得到答案了。
以下是详细代码实现:
```
#include <stdio.h>
// 计算阶乘的函数
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int m, n, result = 1;
printf("请输入 m 和 n(n<=m<=20):");
scanf("%d%d", &m, &n);
// 循环计算m*(m-1)*...*(m-n+1)
for (int i = m; i >= m-n+1; i--) {
result *= i;
}
// 计算m!/(n!*(m-n)!)
result /= factorial(n);
printf("%d!/(%d!(%d-%d)!) = %d\n", m, n, m, n, result);
return 0;
}
```
当我们输入m=5, n=2时,程序的输出结果为:
```
请输入 m 和 n(n<=m<=20):5 2
5!/(2!(5-2)!) = 10
```
因此,5!/(2!*(5-2)!)的值为10。
阅读全文