[蓝桥杯 2019 省 B] 特别数的和
题目描述
小明对数位中含有 2 2 2、 0 0 0、 1 1 1、 9 9 9 的数字很感兴趣(不包括前导 0 0 0),在 1 1 1 到 40 40 40 中这样的数包括 1 1 1、 2 2 2、 9 9 9、 10 10 10 至 32 32 32、 39 39 39 和 40 40 40,共 28 28 28 个,他们的和是 574 574 574。
请问,在 1 1 1 到 n n n 中,所有这样的数的和是多少?
输入格式
输入一行包含一个整数 n n n。
输出格式
输出一行,包含一个整数,表示满足条件的数的和。
样例 #1
样例输入 #1
40
样例输出 #1
574
提示
对于 20 % 20\% 20% 的评测用例, 1 ≤ n ≤ 10 1 \le n \le 10 1≤n≤10。
对于 50 % 50\% 50% 的评测用例, 1 ≤ n ≤ 100 1 \le n \le 100 1≤n≤100。
对于 80 % 80\% 80% 的评测用例, 1 ≤ n ≤ 1000 1 \le n \le 1000 1≤n≤1000。
对于所有评测用例, 1 ≤ n ≤ 10000 1 \le n \le 10000 1≤n≤10000。
蓝桥杯 2019 省赛 B 组 F 题。
**思路:**写一个函数判断某数中存不存在 2,0,1,9,如果存在的话就返回该值。
#2 0 1 9 def test(n):guding = nwhile n!=0:temp = n % 10if temp in (2,0,1,9):return gudingelse:n = n//10n = int(input())
s = []
sum = 0
for i in range(1,n+1):a = test(i)s.append(a)
# print(s)
for i in s:if i ==None:continueelse:sum +=i
print(sum)