c++实现:输入一个正整数n,计算1+1/(1+2)+1/(1+2+3)+·· · ·+1/(1+2+3+··· · ·+n)的值(2 < n < 1000, 结果保留两位小数)。
时间: 2023-05-26 19:07:16 浏览: 41
#include<stdio.h>
int main(){
int n,i,j,k; //i表示要求的这个数列的分母,j就是分子,k表示分母每个位置上的值
double sum=0; //sum表示结果
scanf("%d",&n);
for(i=1;i<=n;i++){
k=1; //初始化,每行都从1开始,当然如果单独算1/1也是1
for(j=1;j<=i;j++){
k*=j;
}
sum+=(double)1/k; //一次循环就是一项,直接累加
}
printf("%.2lf",sum); //保留两位小数
return 0;
}
相关问题
用c++回答:输入一个正整数n,求1+2+..+n!并输出。
好的,这个问题可以使用递归方法解决。以下是一个简单的 C 语言程序代码:
```c
#include <stdio.h>
int factorial(int n) {
if (n == 1) return 1;
return n * factorial(n-1);
}
int main() {
int n, result;
printf("请输入一个正整数 n:");
scanf("%d", &n);
result = factorial(n);
printf("%d 的阶乘是 %d\n", n, result);
return 0;
}
```
在该程序中,我们定义了一个 `factorial` 函数,它可以递归地计算输入整数 `n` 的阶乘,并将结果作为函数值返回。此外,我们在 `main` 函数中读入 `n`,调用 `factorial` 函数计算阶乘并输出结果。
希望这个程序可以解决你的问题!
用c++编写输入一个正整数 计算并输出1-1/2+1/3-1/4+……+1/n
以下是用C++编写输入一个正整数,计算并输出1-1/2+1/3-1/4+……+1/n的代码:
```
#include <iostream>
using namespace std;
double getSum(int n) {
double sum = 0;
int flag = 1;
for (int i = 1; i <= n; i++) {
sum += flag * 1.0 / i;
flag = -flag;
}
return sum;
}
int main() {
int n;
cout << "请输入一个正整数n:" << endl;
cin >> n;
double sum = getSum(n);
cout << "1-1/2+1/3-1/4+……+1/n的结果为:" << sum << endl;
return 0;
}
```
相关问题: