洛谷能过,一本通为啥不能过?

P1035 [NOIP2002 普及组] 级数求和

zhouzihao20110917 @ 2023-12-02 22:51:05

#include <bits/stdc++.h>
using namespace std;

int main() {
    double n, sum = 0, u = 0;
    cin >> n;
    for (double i = 1;; i++) {
        sum += 1 / i;
        if (sum > n) {
            u = i;
            break;
        }
    }
    cout << u;
    return 0;
}

by danlao @ 2023-12-02 22:53:17

本体打表即可


by 0_and_1 @ 2023-12-02 23:40:34

可能是 double 的精度问题,不同编译器、运行设备会导致结果不同。


by 0_and_1 @ 2023-12-02 23:48:06

比如输入15,你的代码和我的代码在 Dev-C++ 上的结果是 1.83542e+006 ,在洛谷自带 IDE 上的结果是 1.83542e+06 (一个0之差),由于这道题用的是文本比较而不是 SPJ,所以可能会出问题。


by 0_and_1 @ 2023-12-02 23:52:41

洛谷上没有 k=15 的这个数据。


|