超时?

P1035 [NOIP2002 普及组] 级数求和

小哥不小心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循环的调试不太好看……


|