[NOIP2002 普及组] 级数求和 C++

洛谷P1035

题目描述

已知:$S_n= 1+\dfrac{1}{2}+\dfrac{1}{3}+…+\dfrac{1}{n}$。显然对于任意一个整数 $k$,当 $n$ 足够大的时候,$S_n>k$。

现给出一个整数 $k$,要求计算出一个最小的 $n$,使得 $S_n>k$。

输入格式

一个正整数 $k$。

输出格式

一个正整数 $n$。

样例 #1

样例输入 #1

1

样例输出 #1

2

提示

【数据范围】

对于 $100\%$ 的数据,$1\le k \le 15$。

【题目来源】

NOIP 2002 普及组第一题

C++

#include<bits/stdc++.h>

using namespace std;
int a,n;
double sn;
signed main() {
    cin>>a;
    while(sn<=a){
        n++;
        sn += 1.0/ n;
    }
    cout << n;
    return 0;
}

添加新评论