c++(1) 用递归函数,求m!/(k!*(m-k)!)
时间: 2023-06-07 08:09:58 浏览: 98
好的,这是一个数学问题,我可以帮您解答。以下是使用递归函数求解m!/(k!*(m-k)!)的方法:
```
int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int combination(int m, int k) {
return factorial(m) / (factorial(k) * factorial(m-k));
}
```
其中,factorial是递归的计算阶乘函数,而combination函数即为您要求的m!/(k!*(m-k)!)的结果。您只需要传入m和k的值即可。
希望这能帮助到您!
相关问题
用递归函数求 n!, 调用函数求 1!+2!+……+10!=?
以下是递归函数求n!的Python代码和1!+2!+……+10!的结果:
```python
# 递归函数求n!
def factorial(n):
if n == 1:
return 1
else:
return n * factorial(n-1)
# 求1!+2!+……+10!
sum = 0
for i in range(1, 11):
sum += factorial(i)
print(sum) # 输出:4037913
```
在引用中的C++代码中,函数lj(int i)的返回值类型为int,但是在函数中并没有return语句,因此当i==0时,函数返回的值是未定义的。在引用中,当i==0时,sum1被赋值为0而不是1,因为0的阶乘为1,而不是0。函数返回的值是sum1,因此当i==0时,函数返回的值是0而不是1。
用c++编写递归函数实现n!
下面是用C++实现的递归函数实现n!的代码:
```c++
#include <iostream>
using namespace std;
int factorial(int n) {
if(n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
int main() {
int n = 5;
cout << n << "! = " << factorial(n) << endl;
return 0;
}
```
在这个例子中,我们定义了一个名为`factorial`的函数,它接受一个整数参数`n`并返回`n`的阶乘。如果`n`等于0,那么它的阶乘为1;否则,它的阶乘等于`n`乘以`factorial(n-1)`的结果。在`main`函数中,我们调用`factorial`函数并打印出结果。
当我们调用`factorial(5)`时,它会递归调用`factorial`函数,并计算`5 * factorial(4)`、`4 * factorial(3)`、`3 * factorial(2)`、`2 * factorial(1)`和`1 * factorial(0)`的值,最后返回120,即5的阶乘。