1 条题解

  • 0
    @ 2026-1-28 18:05:54
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int n;
        cin >> n;  // [1] 读取输入的整数n,确定统计范围的上限
        int sum = 0; // [2] 初始化计数器,用于统计1~n中含有数字0的数的个数
        // [3] 遍历1到n之间的所有整数,逐个检查是否含0
        for(int i=1;i<=n;i++){
            int num=i,flag=0; // [4] 保存当前数到num,初始化标记flag为0(默认不含0)
            // [5] 循环分解当前数的每一位数字
            while(num){
                if(num%10==0){ // [6] 检查当前个位是否为0
                    flag=1; // [7] 标记当前数含有0
                    break; // [8] 找到0后提前退出循环,无需继续检查
                }
                num/=10; // [9] 去掉当前个位,继续检查更高位
            }
            if(flag) sum++; // [10] 如果当前数含0,计数器加1
        }
        cout<<sum; // [11] 输出含有数字0的数的总个数
        return 0;
    }
    
    • 1

    信息

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