1 问题描述
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 11 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574,平方和是 14362。
注意,平方和是指将每个数分别平方后求和。
请问,在 1 到 2019 中,所有这样的数的平方和是多少?
2 问题分析
①将2、0、1、9组成一个数组
②从1循环到2019,将其变为str(i)字符串类型,循环字符串判断是否在s[i]在2、0、1、9组成的数组里,如果存在,即对其平方
3 代码求解
k=['1','2','0','9']
t=0
for i in range(1,2020):
s=str(i)
for j in s:
if j in k:
t=t+pow(int(s),2)
break;
print(t)