为什么会RE

P1035 [NOIP2002 普及组] 级数求和

x232 @ 2022-11-23 22:15:26

#include<bits/stdc++.h>
using namespace std;
int n,k;
double S(int k)
{
    double o=0;
    int cnt=0;
    for(int i=1;i<=k;i++)
    {
        cnt+=i;
    }
    o=(k/cnt);
    return o;
}
int main()
{
    cin>>k;
    while(S(n)>k)
    {
        n++;
    }
    cout<<n;
    return 0;
}

by DownLoads @ 2022-11-23 22:32:07

n 初始为 0 时,在调用的 S(0) 中 cnt = 0 , 然后除以 0 导致RE了

应该把 n 初始化为 1


by x232 @ 2022-11-24 21:35:03

@DownLoads 谢谢谢谢。


|