求助

P1035 [NOIP2002 普及组] 级数求和

zhan0518 @ 2023-03-02 12:03:15

#include<iostream>
using namespace std;

int main()
{
    int k;
    cin >> k;
    int sum = 0; 
    int i = 0;
    while(true)
    {
        sum += 1 / i;
        if(sum > k)
        {
            cout << sum << endl;
            return 0;
        }
        i++;
    }
}

麻烦各位帮我看看错哪了


by bitset_iTM @ 2023-03-02 12:16:03

@zhan0518 第一次循环时i的值为0

所以sum += 1 / i;会RE 建议将i初始化成1或者i++放在循环第一行。

求关


by MWL_wma @ 2023-06-17 11:30:15

#include<iostream>
using namespace std;

int main()
{
    int k;
    cin >> k;
    double sum = 0; //sum需要加小数(基本小于1),用int的话永远是1(sum+=1/1)
    double i = 1;//除数是整型的话得数也是整型
    while(1)
    {
        sum += 1 / i;
        if(sum > k)
        {
            printf("%.0lf",i);//cout不知道什么原因没法输出  输出的是i而不是sum
            return 0;
        }
        i+=1;
    }
}

by MWL_wma @ 2023-06-17 11:30:52

求关


by MWL_wma @ 2023-06-17 11:32:06

AC通过


|