A级数求和
题目链接:https://ac.nowcoder.com/acm/contest/1077/A
题目描述
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
输入描述:
输入k
输出描述:
输出n
示例1
输入
1
输出
2
思路:叠加数列和即可,大于k退出即可
// // Created by HJYL on 2019/8/15. // #include <iostream> #include <vector> #include <map> #include <string> #include <queue> #include <stack> #include <set> #include <algorithm> #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> using namespace std; typedef long long ll; const int maxn=1e6+10; int main() { int k; scanf("%d",&k); double res=1; for(int i=1;;i++) { res += double((double) 1 / double(i + 1)); if (res > k) { printf("%d ", i + 1); break; } } return 0; }