题目:
平方和
【问题描述】 小明对数位中含有 2、0、1、9 的数字很感兴趣
,在 1 到 40 中这样的数
包 括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。 注意,平方和是指将每个数分别平方后求和。 请问,在 1 到 2019 中,所有这样的数的平方和是多少?
————————————————
解题思路:
暴力枚举,因为数据范围是1-2019,这么小的范围不暴力浪费了
读题要读懂,读清楚,其实就是找数位中含有2,0,1,9中的任意一个都可以,
所以可能多满足的,用set()来储存比较保险。
且将数字转换为字符串,再用 in 来判断即可:
first=[i for i in range(1,2020)]
data=set()
for i in first:
if '0' in str(i) or '1' in str(i) or '2' in str(i) or '9' in str(i):
data.add(i)
print(sum(data))
print(sum([i**2 for i in data]))
每段代码运行结果都需要测试先,先将上代码的2020改为41先,得到测试结果:
================== RESTART: /Users/mac/pythontest/2019年平方和.py ==================
574
14362
与题目给出数据相符,得出结果