求助,在线等,挺急的..最后不能输出结果..

P1035 [NOIP2002 普及组] 级数求和

瓜子 @ 2016-11-11 20:30:43

#include<iostream>
using namespace std;
int main()
{
    int N=1,K;
    double S=0.0;
    cin>>K;
    while(S<=K)
        {
            S=S+1/N;
            N++;
        }
    cout<<N;
    return 0;
}

by winmt @ 2016-11-11 20:54:25

修改了一下,如下:(应该可以AC)

#include<iostream>
using namespace std;
int main()
{
    double N=1.0,K;
    double S=0.0;
    cin>>K;
    while(1)
    {
        S=S+1.0/N;
        if(S>K)break;
        N++;
    }
    cout<<N;
    return 0;
}

by winmt @ 2016-11-11 20:56:46

主要问题:.int/int结果int,即1/N(N是int)结果是int; 所以1->1.0(double),N定义成double,结果就是double了。这个问题要注意了。


by winmt @ 2016-11-11 20:58:11

@瓜子


by 瓜子 @ 2016-11-13 18:43:49

好..我明白了..谢谢..


|