【题目描述】
已知:Sn=1+12+13+…+1nSn=1+12+13+…+1n。显然对于任意一个数KK,当nn足够大的时候,SnSn大于KK。 现给出一个整数K(1≤K≤15)K(1≤K≤15),要求计算出一个最小的nn,使得Sn>KSn>K。
【输入】
一行,一个整数KK。
【输出】
一行,一个整数nn。
【输入样例】
1
【输出样例】
2
废话不多说,直接上AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
double s = 0;//s:题中的Sn,k:题中的K,n:题中的n
int n, k;
cin>>k;
for(n = 1; s <= k; ++n)
s += 1.0 / n;//1.0/n可以避免进行整除运算,使表达式是值是浮点型量
cout<<n - 1;//跳出前n又多加了一次1,将这个1减掉,就是最终结果
return 0;
}
给个关注吧哥~~~