用c++,求求各位大佬了!设 s=1+1/2+1/3+...+1/n,求与8最接近的s值及与之对应
1个回答
展开全部
n从1开始每次自增1,while循环统计s+=1.0/n,直到s>=8结束循环
与8最接近的s一定是最后一个小于8或第一个大于8的两个s之一
最后输出与8距离更小的那个s以及与之对应的n即可
C++代码和运行结果如下:
可见与8最接近的s为8.00049,与之对应的n为1673
附C++源码:
#include <iostream>
using namespace std;
int main() {
double s = 0, last_s;
int n = 0;
while (s < 8) {
n++;
s += 1.0 / n;
last_s = s;
}
cout << "1+1/2+1/3+...+1/";
if (8 - last_s < s - 8)
cout << n - 1 << "=" << last_s << endl;
else
cout << n << "=" << s << endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询