为社么TLE???HELP!

P1035 [NOIP2002 普及组] 级数求和

coderzhx @ 2024-06-07 19:50:04

#include <iostream>
using namespace std;

double sum = 0;
int k;
int cnt = 1;

int main() {
    cin >> k;
    while (sum < k) {
        sum += 1 / cnt;
        cnt++;

    }
    cout << cnt;

    return 0;
}

by Foggy_night @ 2024-06-07 19:54:31

用do while然后条件改一下sum <= k


by xiaozhou001 @ 2024-06-07 20:06:26

@Geyijinnoip

sum+=1/cnt;

换成

sum+=1./cnt;

就可以了。

因为sum虽然是double类型,但是 1/cnt 还是int。但是在进去sum后变为了double.也是很多初学者会犯得问题。


by coderzhx @ 2024-06-08 12:28:31

@xiaozhou001 谢谢


by coderzhx @ 2024-06-08 12:29:30

@Foggy_night 谢谢了


|