题解:蓝桥云课 153 洁净数

【题目来源】

蓝桥云课:1.洁净数 - 蓝桥云课

【题目描述】

小明非常不喜欢数字 \(2\),包括那些数位上包含数字 \(2\) 的数。如果一个数的数位不包含数字 \(2\),小明将它称为洁净数。请问在整数 \(1\)\(n\) 中,洁净数有多少个?

【输入】

输入的第一行包含一个整数 \(n(1≤n≤10^6)\)

【输出】

输出一行包含一个整数,表示答案。

【输入样例】

30

【输出样例】

18

【算法标签】

《蓝桥 153 洁净数》 #2020# #暴力# #省模拟赛#

【解题思路】

image

【代码详解】

n = int(input())  # 输入n
ans=0  # 定义统计结果,初始为0
for i in range(1, n+1):  # 遍历1到n
    sw = i//100000  # 进行数位拆分
    w = i//10000%10
    q = i//1000%10
    b = i//100%10
    s = i//10%10
    g = i%10
    if sw==2 or w==2 or q==2 or b==2 or s==2 or g==2:  # 若任一数位为2,则继续循环
        continue
    ans+=1  # 如果没有跳过这句则结果加1
print(ans)  # 打印结果

【运行结果】

30
18
posted @ 2026-03-04 10:41  团爸讲算法  阅读(1)  评论(0)    收藏  举报