李白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。