超时了!噫!

P1035 [NOIP2002 普及组] 级数求和

Miting @ 2019-09-23 18:05:40

#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int K,n=1,S=0;
    cin>>K;
    while (S<K)
    {
        S=S+(1/n);
        n=n+1;
    }
    cout<<n;
    return 0;
}

大佬们帮忙看一下谢谢。


by 月离 @ 2019-09-23 18:13:32

这个要用double吧。。。


by Miting @ 2019-09-23 18:16:37

@月离 啊!好像的确要这样,但是double之后也要很长时间,1可以出2 但是2要等好——长好长时间才能出一个很——大很大的数。XD


by 月离 @ 2019-09-23 18:22:26

@Miting 改成这样

#include<iostream>
#include<math.h>
using namespace std;
int main(){
    double K,n=0,S=0;
    cin>>K;
    while(S<K){
        n++;
        S=S+(1/n);

    }
    cout<<n;
    return 0;
}

by Miting @ 2019-09-23 18:28:21

@月离 谢谢大佬!!!www理解了!


by 菜鸡gyf @ 2019-09-29 19:47:57

n应该等于0


|