lxdyz @ 2022-04-24 18:15:38
#include <iostream>
using namespace std;
int main()
{
double sd1=1, sd2=1,sd3=0;
cin >> sd2;
for (sd1 = 1; sd3 <= sd2; sd1++)
{
sd3 = (1.0 / sd1)+sd3;
}
cout << sd1-1;
return 0;
}
改了一个i-1 和 1.0 就对了 这是为什么?????
by Azure__ @ 2022-04-24 18:16:40
1.0应该是精度问题。
by lxdyz @ 2022-04-24 18:17:20
sd1-1 我懂,前面我忽略了没有减 。但是1.0 是什么鬼
by lxdyz @ 2022-04-24 18:18:21
@Azure__ 6666666比我打字快。
by Azure__ @ 2022-04-24 18:19:52
用1.0会将结果强制转化成浮点型。
by ge80808 @ 2022-04-27 15:53:54
你那前面的sd2=1是多余的吧?
by AIMEE11 @ 2022-07-26 22:00:12
用1.0可以强制转化,否则结果就那啥了别问我为啥知道,因为这坑我踩了无数次。