c++编写程序计算sum=1-1/2+1/4-1/8……
时间: 2023-11-23 15:07:13 浏览: 110
以下是C++编写程序计算sum=1-1/2+1/4-1/8……的代码:
```c++
#include <iostream>
using namespace std;
int main() {
int n;
float sum = 1.0, temp = 1.0;
cout << "请输入一个整数n:";
cin >> n;
for (int i = 1; i <= n; i++) {
temp /= 2;
if (i % 2 == 0) {
sum += temp;
} else {
sum -= temp;
}
}
cout << "sum=" << sum << endl;
return 0;
}
```
相关问题
用C++编写程序,求x=1-1/22+1/333-1/4444+1/55555……+1/999999999
可以使用循环来计算这个式子,具体实现如下:
```cpp
#include <iostream>
using namespace std;
int main() {
double sum = 0; // 存储结果
int sign = 1; // 存储符号
for (int i = 2; i <= 999999999; i++) {
sign = -sign; // 符号取反
sum += sign * 1.0 / i; // 累加每一项
}
sum += 1; // 加上第一项
cout << "x = " << sum << endl; // 输出结果
return 0;
}
```
这里需要注意的是,我们使用 `double` 类型来存储结果,因为这个式子的计算结果可能是一个非常小的小数,如果使用 `int` 或 `long long` 等整型类型存储结果,可能会有精度丢失的问题。另外,我们需要在最后加上第一项的值 1,因为上面的循环只计算了后面的所有项的和。
自定义一个函数求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
```
阅读全文