学习目标:
刷1000道蓝桥题库
学习内容:
特别数的和
题目:
题解思路:
我是一个刚开始学python的小白,首先我看到题目,先想到的是它要求我们自己输入一个数,我们要知道input(),然后在1到n这个范围内说明要用到range()函数,再就是含有2,0,1,9这些数字,我想的是如果我们单纯的用求余那些去计算出含有这些数字的数字的话,可能会很麻烦,因为用户输入的数字可能是三位数也可能是四位数,这样还要有一些判断,所以不是很现实,但是很单纯哈哈哈,所以我想到了第二个方法,把用户输入的数字转化为字符串,然后判断字符串里面是否含有这几个字符,这个应该比较简单,也比较快。
那么判断字符串是否在某个字符里面,我们直接用in,in它有两个用法,一个是用在我们的循环里面,for循环经常要用in这个关键字,第二个用法也是我后来才知道的,就是用来检查序列里面是否有某些值。
知道上面的思路的话,这道题就变得简单了,以下是我的解答:
n=int(input())
# 让用户输入一个整数
sum=0
# 用来保存和
for i in range(1,n+1):
# range是范围,是一个左闭右开的区间,所以要加一
a=str(i)
# 把里面的数字转化为字符串
if '2'in a or '0' in a or '1' in a or '9' in a:
# 判断条件
sum+=i
# 求和
print(sum)
结果:
输入
40
输出
574
以上就是我的题解,谢谢大家,继续加油!