怎么办!C++编译器通过这里才60分

P1035 [NOIP2002 普及组] 级数求和

李白257 @ 2021-01-29 15:32:19

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int k;
    cin>>k;
    int n=2;//提前设定
    float sn=1.0;//有小数
    while(1)//后面有break,不用担心
    {
    sn+=1.0/n;//因为是float
    if(sn>k)
    {
        break;//判断:大于就退出
    }
    else
    {
        n++;
    }
    }
    cout<<n;
}

各位大神求帮助!!1


by _caiji_ @ 2021-01-29 15:33:39

你编译通过和在洛谷AC有什么关系吗?


by PragmaGCC @ 2021-01-29 15:35:17

编译成功又不代表你过了这道题


by _caiji_ @ 2021-01-29 15:35:50

因为精度问题,要把float换成double,行了抬走下一个


by little_cindy @ 2021-01-29 15:38:04

@李白257 告诉你一个秘密,有的时候你的答案可能是随机的


by YclarHIM0302 @ 2021-01-29 15:48:18

将float改为double即可 @李白257


by newbie666 @ 2021-01-29 16:50:31

@李白257

我爱打MC,原名 李白李广后代令德,现名[李白257](/user/461515)(未开通)。但最近可能没时间玩。

用户名+主页介绍,az...%%%


by BSHank @ 2021-07-12 16:05:54

(花括号有点儿多,可读性有待提高)把float改成double。


|