编写递归函数int Fac(int n)来求n的阶乘,然后在主函数中会调用该递归函数来计算S = M! + N!(M <= 10,N <= 10)的值。
时间: 2023-06-04 16:04:32 浏览: 164
好的,这是一个计算阶乘的问题,可以通过编写递归函数来实现。以下是递归函数int Fac(int n)的代码实现:
```C++
int Fac(int n)
{
if(n == 0 || n == 1)
return 1;
else
return n * Fac(n - 1);
}
```
在主函数中,可以通过调用Fac函数来计算S = M! N!的值,代码实现如下:
```C++
#include <iostream>
using namespace std;
int Fac(int n);
int main()
{
int M, N, S;
cout << "请输入M和N的值(M <= 10,N <= 10):" << endl;
cin >> M >> N;
S = Fac(M) * Fac(N);
cout << "S = " << S << endl;
return 0;
}
int Fac(int n)
{
if(n == 0 || n == 1)
return 1;
else
return n * Fac(n - 1);
}
```
相关问题
请用C++语言帮我编写一个程序,求组合Cmn的值,其中Cmn=n!/m!(n-m)!。要求:通过调用自定义递归函数fac(int n),求得n的阶乘值,再在主函数中调用fac函数求出Cmn的值。
以下是用C++语言编写的程序,可以计算组合Cmn的值:
```c++
#include<iostream>
using namespace std;
int fac(int n) { // 自定义递归函数fac,用于求n的阶乘
if (n == 0 || n == 1) {
return 1;
} else {
return n * fac(n - 1);
}
}
int Cmn(int m, int n) { // 主函数中调用fac函数求出Cmn的值
int result = fac(n) / (fac(m) * fac(n - m));
return result;
}
int main() {
int m, n;
cout << "请输入m和n的值:";
cin >> m >> n;
cout << "Cmn的值为:" << Cmn(m, n) << endl;
return 0;
}
```
使用方法:在命令行或者IDE中运行该程序,按照提示输入m和n的值,程序会输出Cmn的值。
c语言编程实现:定义一个求n的阶乘的函数long fac(int n),在主函数输入一个正整数,然后调用fac函数输出这个数的阶乘值。主函数在前,fac函数在后面定义.提示:用递归方法求n!,n!可用递归关系来表示:
主函数代码如下:
```
#include <stdio.h>
long fac(int n);
int main() {
int n;
printf("请输入一个正整数:");
scanf("%d", &n);
printf("%d的阶乘为%ld\n", n, fac(n));
return 0;
}
```
fac函数代码如下:
```
long fac(int n) {
if (n == 1) {
return 1;
} else {
return n * fac(n - 1);
}
}
```
运行程序后,输入一个正整数,即可得到该数的阶乘值。
阅读全文