为什么加了个if,break就对了,小白求解

P1035 [NOIP2002 普及组] 级数求和

Lqq2010755105 @ 2024-12-02 22:02:49

#include<iostream>

using namespace std;

int main()
{
    double s = 0;
    int k;
    cin>> k;
    int i;
    for ( i = 1;s<=k ; i++)
        s += 1.0 / i;
    cout <<i;
    return 0;
}

by Lqq2010755105 @ 2024-12-02 22:16:25

@liangbob谢谢你的回答,但是for循环里面不是有限制s<=k吗,这里的s就是和


by liangbob @ 2024-12-02 22:23:31

@Lqq2010755105

哦抱歉是我脑子抽搞错了,向您谢罪/kel

当您的代码加完后到 s > k 时,循环不会立即结束,而是 i 加一后再结束循环。

因此您的这段代码将 cout<<i; 改成 cout<<i-1; 即可通过。


by Lqq2010755105 @ 2024-12-02 22:29:28

奥~,谢谢!!谢谢!!


|