题目描述

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

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

输入格式

一个正整数 k。

输出格式

一个正整数 n。

输入输出样例

输入 #1复制

1

输出 #1复制

2

说明/提示

【数据范围】

对于 100% 的数据,1≤k≤15。

【题目来源】

NOIP 2002 普及组第一题

#include<bits/stdc++.h>
using namespace std;

int main() {
    int k, n = 0;
    cin >> k;
    for(double s = 0.0; s <= k; n++, s += 1.0/n);
    printf("%d\n", n);
    return 0;
}
Last modification:August 9th, 2021 at 10:47 am
如果觉得我的文章对你有用,请随意赞赏