每日一题10012-数字统计

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.知识点

  1. count的使用方法,str.count(‘要寻找的字符’)
  2. range(start,stop,step),其中只能到stop-1位置
  3. 若想不断取余数,所取余数的整数要不断更新
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值