题目描述
已知:S_n= 1+1/2+1/3+…+1/nSn=1+1/2+1/3+…+1/n。显然对于任意一个整数KK,当nn足够大的时候,S_nSn大于KK。
现给出一个整数KK(1 \le k \le 151≤k≤15),要求计算出一个最小的nn;使得S_n>KSn>K。
输入格式
一个正整数KK
输出格式
一个正整数NN
输入输出样例
输入 #1复制
1输出 #1复制
2
自己用模拟做的,竟然有大佬用数论!!!!好强啊啊啊啊
#include<iostream>
using namespace std;
int main()
{
double k, sn = 0, i;
cin >> k;
for (i = 1;; i++)
{
sn += 1 / i;
if (sn > k)
break;
}
cout << i;
}
#include<cstdio>
#include<cmath>
const double gamma=0.5772156649;
int main() {
int k,n;
scanf("%d",&k);
n=exp(k-gamma)+0.5;
printf("%d",n);
return 0;
}