1.题目详情
请统计某个给定范围[L, R]的所有整数中,数字2出现的次数。
比如在给定范围[2, 22],数字2在数2中出现了1次,在数12中出现了1次,在数20中出现了1次,在数21中出现了1次,在数22中出现了2次,所以数字2在该范围内一共出现了6次。
2.解题思路
如何判断整数中是否含有2?
3.代码实现
第一种方法,对于整数,从个位开始,一直对齐取余,如果余数为2,那么计数器加一,同时这个整数再去掉余数部分即取整,重复操作不断取余
left, right = map(int, input().split()) # 左右边界值
count = 0 # 计数器
for i in range(left, right + 1): #range用法,start开始,stop-1结束
while i > 0:
if i % 10 == 2:
count += 1
i = i // 10 # 更新i
print(count)
第二种方法,利用python中的count方法,count方法是用于统计字符串中某个字符的出现次数,注意若用count方法,必须先转换为str
left,right = map(int,input().split())
count = 0
for i in range(left,right+1):
count += str(i).count('2') #寻找是否有字符2,若有,计数器+1
print(count)
4.知识点
- count的使用方法,str.count(‘要寻找的字符’)
- range(start,stop,step),其中只能到stop-1位置
- 若想不断取余数,所取余数的整数要不断更新