NOIP 2002 普及组 复赛 级数求和

NOIP 2002 普及组 复赛 级数求和

1.原以为是菜题,手到擒来,提交40,附上40分代码,引以为戒

#include
double s(int n){
    int i;
    double ans=0;
    for(i=1;i<=n;i++)
        ans+=1.0/i;
    return ans;
}
int main(){
    int k;
    int i;
    scanf("%d",&k);
    i=1;
    while(1){
        if(s(i)>k)
            break;
        i++;
    }
    printf("%d\n",i);
    return 0;

2.看过他人代码后,发现,在s函数这块太耗时,规范的反作用。

3.立马提交AC。

附上AC代码,编译环境Dev-C++4.9.9.2

#include
int main(){
    int k;
    int i;
    double ans;
    scanf("%d",&k);
    ans=1;
    i=1;
    while(1){
        if(ans>k)
            break;
        i++;
        ans+=1.0/i;
    }
    printf("%d\n",i);
    return 0;

你可能感兴趣的:(NOIP,普及组,复赛)