小哥不小心MXH @ 2017-10-13 08:08:05
条件和break的问题?萌新用的不熟= =
顺便求教可能导致超时的原因都有啥?
#include<stdio.h>
int main()
{
int k,n;
long double s=0;
scanf("%d",&k);
for(int i=1;;i++)
{
s=s+1/i;
if(s>k)
{n=i;break;}
}
printf("%d",n);
}
by Salamander @ 2017-10-13 08:43:09
1/i是整除,所以始终等于0,所以你的s根本没有加,应该是1.0/i
by Sherlock·Holmes @ 2017-10-15 11:41:36
或者用while,for循环的调试不太好看……