在一行中输入两个整数
,用空格隔开。其中
表示区间上界,
表示要统计的数字。
输出一个整数,表示数字
在区间
中出现的次数。
11 1
4
在中,数字 1 出现了 4 次。
20 1
12
在区间到
中,数字 1 出现在
中,共 12 次。
import sys for line in sys.stdin: n,x = line.strip().split() cnt = 0 for i in range(1,int(n)+1): if x in str(i): cnt += str(i).count(x) print(cnt)
# 使用数学的方法 n, x = map(int, input().split()) # 1 先判断n的数量级:len(str(n)) a = str(n) len_n = len(a) # 2 判断个位一共出现了多少次该数字 cnt = [] for i in range(len_n): if int(a[-1]) > x: cnt_1 =int(n / (10 ** (i+1))) + 1 else: cnt_1 = int(n / (10 ** (i+1))) # 在考虑两种特殊情况 # 1 x == 0 if x == 0: cnt_1 = cnt_1 - 1 # 计算出现总数 cnt_1 = cnt_1 * (10 **i) # 2 int(a[-1]) == x if int(a[-1]) == x: cnt_1 = cnt_1 + n % (10 ** i) + 1 cnt.append(cnt_1) a = a[0: -1] print(sum(cnt))