题目 设计一个程序,计算组合数:C(m,r)=m!/(r!*(m-r)!),其中m,r为正整数,且m>r.求阶乘和组合数分别用函数来实现.用C++
时间: 2024-05-01 18:20:34 浏览: 97
C++设计程序,求数的阶乘
以下是用 C++ 实现计算组合数的程序代码:
```cpp
#include <iostream>
// 计算阶乘,使用递归实现
int factorial(int n) {
if (n == 1) {
return 1;
} else {
return n * factorial(n-1);
}
}
// 计算组合数
int combination(int m, int r) {
int numerator = factorial(m);
int denominator = factorial(r) * factorial(m-r);
return numerator / denominator;
}
int main() {
int m, r;
std::cout << "请输入 m 和 r 的值(中间用空格隔开):" << std::endl;
std::cin >> m >> r;
std::cout << "C(" << m << ", " << r << ") = " << combination(m, r) << std::endl;
return 0;
}
```
程序中使用了递归函数来计算阶乘,因为阶乘的计算是一个典型的递归问题。同时,组合数的计算也是通过调用阶乘函数来实现的。
阅读全文