为什么float不行,double过了

P1035 [NOIP2002 普及组] 级数求和

Nicole @ 2016-04-18 23:45:16

Sn定义成float为什么不行

#include <stdio.h>
int main()
{
     long n=0;
    long k;
    double Sn=0.0;
    scanf("%ld",&k);
    while(Sn<=k)
    {
        n++;
        Sn+=1.0/n;
    }
    printf("%ld\n",n);
    return 0;
}

by FlierKing @ 2016-04-19 12:09:32

因为double精度比float高


by 俞康进 @ 2016-07-23 08:11:34

可能是因为题目要你用double,也可能是用float会溢出。


by 周珺已 @ 2016-08-12 10:02:34

doubleC++没问题


|