c++编写一个求n!的函数,并调用s=1/1!+1/2!+1/3!+……+1/n!和sum=n!/(n-m)!×m!)+(n>m)
时间: 2023-11-27 18:05:21 浏览: 50
以下是C++编写一个求n!的函数,并调用s=1/1!+1/2!+1/3!+……+1/n!和sum=n!/(n-m)!×m!)+(n>m)的例子:
```c++
#include<iostream>
using namespace std;
// 求n的阶乘
int factorial(int n){
if(n == 0 || n == 1){
return 1;
}
else{
return n * factorial(n-1);
}
}
int main(){
int n = 5, m = 2;
double s = 0, sum = 0;
for(int i = 1; i <= n; i++){
s += 1.0 / factorial(i);
}
sum = factorial(n) / (factorial(n-m) * factorial(m));
cout << "s = " << s << endl;
cout << "sum = " << sum << endl;
return 0;
}
```
相关问题
C++用函数求k=1!+2!+3!+……+n!的值由键盘输入
好的,根据您的需求,我可以为您编写一个C++程序,使用函数来计算k=1!+2!+3!+……+n!的值,同时从键盘输入n的值。
以下是程序代码:
```c++
#include <iostream>
using namespace std;
// 定义阶乘函数
int factorial(int n) {
int fac = 1;
for (int i = 1; i <= n; i++) {
fac *= i;
}
return fac;
}
int main() {
int n;
cout << "请输入n的值:";
cin >> n;
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += factorial(i); // 调用阶乘函数计算i的阶乘,并将结果加到总和中
}
cout << "k的值为:" << sum << endl;
return 0;
}
```
在程序中,我们定义了一个名为factorial的函数,该函数用于计算一个数字的阶乘。在主函数中,我们使用for循环来计算1!+2!+3!+……+n!的值,并在每次循环中调用factorial函数来计算当前数字的阶乘,最后将结果加到总和中。
希望这个程序能够满足您的需求。
自定义一个函数求1+1/2+1/3+……+1/n,编写程序,在主函数中求s=s1+s2+s3的值,其中: s1=1+1/2+1/3+……+1/5 s2=1+1/2+1/3+……+1/10 s3=1+1/2+1/3+……+1/20
您可以自定义一个函数来求1+1/2+1/3+……+1/n,代码如下:
```c++
double sum(int n) {
double res = 0;
for (int i = 1; i <= n; i++) {
res += 1.0 / i;
}
return res;
}
```
然后在主函数中,您可以调用这个函数来求s1、s2、s3的值,代码如下:
```c++
#include <iostream>
using namespace std;
double sum(int n);
int main() {
double s1 = sum(5);
double s2 = sum(10);
double s3 = sum(20);
double s = s1 + s2 + s3;
cout << "s1 = " << s1 << endl;
cout << "s2 = " << s2 << endl;
cout << "s3 = " << s3 << endl;
cout << "s = " << s << endl;
return 0;
}
double sum(int n) {
double res = 0;
for (int i = 1; i <= n; i++) {
res += 1.0 / i;
}
return res;
}
```
输出结果为:
```
s1 = 2.28333
s2 = 2.92897
s3 = 3.59774
s = 8.81004
```