开始我用的float有两个测试没过(应该是精度不够高,导致算不到后面的数),但是在devc++上面输出了结果(当然是错误结果),但是精度不够高,就跳不出循环啊,**怎么还有了错误输出呢?**是我在哪里理解错了吗?
后来把float改为double测试数据就都通过了
下面是错误代码
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
float sum=0;
int i=1;
for(i=1;sum<=n;i++)
{
sum+=(1.0/i);
}
cout<<i-1<<endl;
return 0;
}