首页 > 试题广场 >

[NOIP2013]记数问题

[编程题][NOIP2013]记数问题
  • 热度指数:12517 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
试计算在区间1 n 的所有整数中,数字x0 ≤ x ≤ 9)共出现了多少次?
例如,在111 中,即在1234567891011 中,数字1 出现了4 次。

输入描述:
输入共1行,包含2个整数n、x,之间用一个空格隔开。


输出描述:
输出共1行,包含一个整数,表示x出现的次数。
示例1

输入

11 1

输出

4

备注:
对于100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
使用join()函数将列表中的所有元素合并为一个字符串
n,x=map(int,input().split())
a = [str(i) for i in range(1,n+1)]
b = "".join(a)
print(b.count(str(x)))


编辑于 2024-02-06 14:07:39 回复(0)
这个效率高
import re

n, x = map(int, input().split())
myList = [i for i in range(1, n + 1)]
print(len(re.findall(str(x), "".join(str(i) for i in myList))))

发表于 2022-11-04 09:12:44 回复(0)