用c++,求求各位大佬了!设 s=1+1/2+1/3+...+1/n,求与8最接近的s值及与之对应

 我来答
xgn911
2022-10-27 · TA获得超过1359个赞
知道小有建树答主
回答量:1493
采纳率:96%
帮助的人:629万
展开全部

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;

}

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式