1 条题解

  • -1
    @ 2025-10-23 18:10:46

    思路分析

    1. 任务拆解:

    • 遍历1到1000的所有数字
    • 检查每个数字是否包含数字3
    • 统计包含数字3的数字总数

    2. 关键点分析:

    • 需要逐个检查每个数字的每一位
    • 使用取模运算%获取数字的个位数
    • 使用整除运算/移除已经检查过的个位数
    • 一旦发现某位数字是3,即可停止检查该数字

    3. 步骤规划:

    • 初始化计数器为0
    • 循环遍历1到1000的每个数字
    • 对于每个数字,循环检查它的每一位
    • 如果发现某位是3,计数器加1并跳出当前数字的检查
    • 输出最终的统计结果

    4. 代码对应:

    • int count = 0; → 初始化计数器
    • for (int i = 1; i <= 1000; i++) → 遍历1到1000的所有数字
    • while (num > 0) → 循环检查数字的每一位
    • int digit = num % 10; → 获取当前个位数
    • if (digit == 3) → 判断是否为数字3
    • num /= 10; → 移除已经检查过的个位数
    • count++; → 统计包含数字3的数字
    • cout << count << endl; → 输出统计结果
    • 1

    所有不超过1000的数中含有数字3的自然数

    信息

    ID
    57
    时间
    1000ms
    内存
    16MiB
    难度
    6
    标签
    (无)
    递交数
    1103
    已通过
    372
    上传者