蓝桥杯 2019试题 A: 平方和

题目:
平方和
【问题描述】 小明对数位中含有 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

与题目给出数据相符,得出结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值