洛谷 P1035:[NOIP 2002 普及组] 级数求和 ← double
【题目来源】
https://www.luogu.com.cn/problem/P1035
【题目描述】
已知:Sn=1+1/2+1/3+…+1/n。显然对于任意一个整数 k,当 n 足够大的时候,Sn>k。现给出一个整数 k,要求计算出一个最小的 n,使得 Sn>k。
【输入格式】
一个正整数 k。
【输出格式】
一个正整数 n。
【输入样例】
1
【输出样例】
2
【数据范围】
对于 100% 的数据,1≤k≤15。
【算法分析】
注意 double 数据类型的使用。
【算法代码】
#include <bits/stdc++.h>
using namespace std;int k,cnt;
double sum;int main() {cin>>k;while(sum<=k) {cnt++;sum+=1.0/cnt;}cout<<cnt;return 0;
}/*
in:1
out:2
*/
【参考文献】
https://www.luogu.com.cn/problem/solution/P1035