题解:蓝桥云课 153 洁净数
【题目来源】
蓝桥云课:1.洁净数 - 蓝桥云课
【题目描述】
小明非常不喜欢数字 \(2\),包括那些数位上包含数字 \(2\) 的数。如果一个数的数位不包含数字 \(2\),小明将它称为洁净数。请问在整数 \(1\) 至 \(n\) 中,洁净数有多少个?
【输入】
输入的第一行包含一个整数 \(n(1≤n≤10^6)\)。
【输出】
输出一行包含一个整数,表示答案。
【输入样例】
30
【输出样例】
18
【算法标签】
《蓝桥 153 洁净数》 #2020# #暴力# #省模拟赛#
【解题思路】

【代码详解】
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
浙公网安备 33010602011771号