求恰好使s=1+1/2+1/3+…+1/n的值大于X时n的值

分析问题

输入一个数字x,然后不断的列举数字更大的数字n,让最后的累加的值大于x,输出此时的n是多少

建立模型

输入一个数字x

从1开始循环查找

如果 s=1+1/2+1/3+⋯+1/n 的值大于 X

输出n

结束循环查找

编写代码

#include <bits/stdc++.h>
using namespace std;
int main(){
    int x;
    cin>>x;
    double n=1,sum=0;//n用于计数 sum用于累加 注意要使用小数数据类型
    while(1){
        sum=sum+1.0/n; //注意整数相除不能得到小数 小数除整数则可以
        if(sum>x) break;
        n=n+1;
    }
    cout<<n;
    return 0;
}

保存 编译 运行