曹砚刚 @ 2019-09-11 07:46:54
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
int k;
long long n=0,i;
float sum=0;
cin>>k;
while(sum<=k)
{
n++;
sum=0;
for(i=1;i<=n;i++)
sum+=1.0/i;
if(sum>k) printf("%lld",n);
}
return 0;
}
by 曹砚刚 @ 2019-09-11 07:48:34
为什么通过的时候,是60分,有两个点不能通过,显示 Time Limit Exceeded.这是为什么呢?
by ZhuMingYang @ 2019-09-11 07:54:41
@曹砚刚 k=15 n会很大 你这样肯定会TLE
by 曹砚刚 @ 2019-09-11 08:24:02
@ZhuMingYang 你好,谢谢回复。 看来这样是while循环并不可行,对吗?是因为while循环要重新开始很多次吗?
by ZhuMingYang @ 2019-09-11 08:28:36
n每次+1 sum只会+1.0/n
所以没必要每次都算前面的一遍
by 满是心酸 @ 2019-10-03 12:39:02
@曹砚刚 写超时了吧?