特定数之和

小丽对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。 请问,在 1 到 n 中,所有这样的数的和是多少?

输入格式:

输入一行包含一个整数 n。

输出格式:

输出一行,包含一个整数,表示满足条件的数的和。

输入样例:

40
 

输出样例:

574
n = int(input())
ans = 0
for i in range(1, n+1):
    t = i
    ok = False 
    while t > 0:
        g = t % 10
        if g == 2 or g == 0 or g == 1 or g == 9:
            ok = True 
        t = t // 10

    if ok:
        ans += i
print(ans)

  

posted @ 2020-02-20 00:28  一斜星辰酱  阅读(612)  评论(0编辑  收藏  举报