1 条题解

  • 0
    @ 2026-10-18 21:32:00

    [NOIP 2002 普及组] 级数求和

    知识点

    循环、浮点数、累加

    解题思路

    依次累加1/i,直到和严格大于输入的K,输出当前项数。

    正确性说明

    各项均为正数,部分和严格递增;第一次超过K之前都不符合要求,第一次超过时就是最小项数。

    易错点

    1.0/i必须采用浮点除法;题目要求严格大于K,因此循环条件为sum<=K。

    复杂度

    设答案为n,时间O(n),空间O(1)。

    参考代码(GNU C++17)

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int k,n=0;cin>>k;double sum=0;
        while(sum<=k){++n;sum+=1.0/n;}
        cout<<n<<'\n';
    }
    
    • 1

    信息

    ID
    62
    时间
    1000ms
    内存
    256MiB
    难度
    入门
    标签
    递交数
    1
    已通过
    1
    上传者