题目描述
试计算在区间 1 到 n的所有整数中,数字x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1到11中,即在 1,2,3,4,5,6,7,8,9,10,11 中,数字 1 出现了 4 次。
Python解答
解答1
- 把1到n整数里所有位的数字拆分成单个数字,变为str格式后放入list。
- 用count方法,统计list中数字x出现的次数。
# -*- coding: utf-8 -*-
# @Time : 2019/10/31 17:27
# @Author : 小晓酱
# @File : luoguu.py
# @Software: PyCharm
End, Num = (int(i.strip()) for i in input().split())
Count = []
for i in range(1, End + 1):
Count.extend(list(str(i)))
Times = Count.count(str(Num))
print(Times)
解答2
- 利用循环。当整数n mod 10 的结果为数字x时,说明个位数为x。次数加1。
- 整数n除以10取整后再mod 10,当结果为数字x时,说明十位数为x。次数再加1
- 依次类推,直到整数n的最高位。
# -*- coding: utf-8 -*-
# @Time : 2019/10/31 17:27
# @Author : 小晓酱
# @File : luoguu.py
# @Software: PyCharm
End, Num = (int(i.strip()) for i in input().split())
Times = 0
for i in range(1, End + 1):
while i:
if i % 10 == Num:
Times += 1
i //= 10
print(Times)