学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。
附上汇总贴:蓝桥杯备考冲刺必刷题(Python) | 汇总-CSDN博客
【题目描述】
小明非常不喜欢数字2,包括那些数位上包含数字2的数。如果一个数的数位不包含数字2,小明将它称为洁净数。请问在整数1至n中,洁净数有多少个?
【输入】
输入的第一行包含一个整数n(1≤n≤10^6)。
【输出】
输出一行包含一个整数,表示答案。
【输入样例】
30
【输出样例】
18
【代码详解】
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