P1035 级数求和
题目描述
已知:S_n= 1+1/2+1/3+…+1/nS
显然对于任意一个整数 k,当 n 足够大的时候,Sn>k
现给出一个整数 k,要求计算出一个最小的 n,使得 Sn>k
输入格式
一个正整数 k
输出格式
一个正整数 n
输入输出样例
输入
1
输出
2
说明/提示
【数据范围】
对于 100% 的数据,1<=k<=15
1 解法: 2 #include<bits/stdc++.h> 3 using namespace std; 4 5 int main() 6 { 7 /*思路: 8 1:Sn=1+1/2+1/3+…+1/n 9 2:定义当前sum,执行while循环 或者递归 10 3:while(sum<=k) 继续 11 4:sum>K 的时候结束 12 5:1≤k≤15 13 */ 14 double sum=0; 15 int k,n=0; 16 cin>>k; 17 while(sum<=k){ 18 n++; 19 sum+=1.0/n; 20 } 21 cout<<n<<endl; 22 return 0; 23 }