1 条题解

  • 0
    @ 2026-10-18 18:28:51

    G2025 [GESP202603 二级] 数数 题解

    知识点:数字处理、条件计数。

    解题思路

    枚举区间内每个整数,统计十进制表示中字符2的数量,恰为3时增加答案。

    为什么正确

    每个候选都完整检查全部数位,“恰为3”筛选得到且仅得到合法数。

    易错点

    超过三个2也不合法;不是统计所有2的出现总次数。

    复杂度

    时间O((r-l+1)log r),空间O(log r)。

    参考代码(C++17)

    #include<bits/stdc++.h>
    
    using namespace std;
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int l,r,ans=0;
        cin>>l>>r;
        for(int i=l;i<=r;i++) {
            string s=to_string(i);
            ans+=count(s.begin(),s.end(),'2')==3;
        }
        cout<<ans;
    }
    

    说明

    本题解为配套教学整理,非官方题解。复杂度按本页参考实现计算,题库使用6个自行生成的测试点。

    • 1

    信息

    ID
    663
    时间
    1000ms
    内存
    512MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者