关于整型和浮点型的求助

P1035 [NOIP2002 普及组] 级数求和

worstcase @ 2016-02-02 16:42:02

double sum=0,k;
int n=0;
scanf("%lf",&k);
while(sum<=k){
    n++;
    sum+=1/(double)n;    
}
为什么里面改成sum+=1/n就会超时

by kkksc03 @ 2016-02-02 17:27:40

@[url=/space/show?uid=15138]worstcase[/url] 1/n是按照整形进行处理,那只要n>=2 结果就是0。

当然你也可以写成1.0/n也有一样的效果。


by liaopifan @ 2016-02-14 14:13:38

老兄sum的初值应该是1吧


by cn_lemon @ 2016-07-27 10:32:03

整形忽略小数


|