为什么是TLE?

P1035 [NOIP2002 普及组] 级数求和

Linan02084 @ 2023-08-21 14:36:29


 #include<bits/stdc++.h>
using namespace std;
int main(){
    int k,sum=0;
    double x;
    cin>>k;
    for(int i=1;x<=k;i++){
        x=1.0/(k*1.0);
        x+=x;
        sum++;
    }
    cout<<sum+1;
    return 0;
}

by qpzcpng @ 2023-08-25 11:20:10

@Linan02084

#include<bits/stdc++.h>
using namespace std;
int main(){
    int k;//sum不需要
    double x=0;//初始值 
    cin>>k;
    for(int i=1;;i++){
        x+=1.0/i; 
        //x+=x;
        if(x>k){
            cout<<i;
            return 0;
        }
    }
}

by CHWe668 @ 2023-08-27 18:24:10

@Linan02084 因为k上限15,骗分,15个数据,再把输出精度调100.


by CHWe668 @ 2023-08-27 19:05:57

@Linan02084

    cout.precision(200);

用15个if即可


by Linan02084 @ 2023-08-30 10:39:41

谢谢大佬


|