没明白为什么对???????????

P1035 [NOIP2002 普及组] 级数求和

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可以强制转化,否则结果就那啥了别问我为啥知道,因为这坑我踩了无数次。


|