超时了 请问代码哪里能简化吗
n,x = map(int,input().split())z= 0;
for i in range(1,n+1):
a = int(i / 10000000)
b = int(i % 10000000 / 1000000)
c = int(i % 1000000 / 100000)
d = int(i % 100000 / 10000)
e = int(i % 10000 / 1000)
f = int(i % 1000 / 100)
g = int(i % 100 / 10)
h = i % 10
if a==x:
z+=1
if b==x:
z+=1
if c==x:
z+=1
if d==x:
z+=1
if e==x:
z+=1
if f==x:
z+=1
if g==x:
z+=1
if h==x:
z+=1
print(e,f,g,h)
print(z)
问题是题试计算在区间
11
1 到
nn
n的所有整数中,数字x(0≤x≤9) x(0 ≤ x ≤ 9)
x(0≤x≤9)共出现了多少次? 麻烦把题目的原地址给出来? zltzlt 发表于 2019-11-5 20:32
麻烦把题目的原地址给出来?
好的 https://www.luogu.org/problem/P1046 zltzlt 发表于 2019-11-5 20:32
麻烦把题目的原地址给出来?
https://www.luogu.org/problem/P1980 zltzlt 发表于 2019-11-5 20:32
麻烦把题目的原地址给出来?
回复网址要审核-.-
zltzlt 发表于 2019-11-5 20:32
麻烦把题目的原地址给出来?
题目描述
试计算在区间1 到n的所有整数中,数字x(0≤x≤9) 共出现了多少次?例如,在 1到11中,即在
1,2,3,4,5,6,7,8,9,10,11 中,数字1 出现了 4 次。
本帖最后由 zltzlt 于 2019-11-5 22:09 编辑
yooooly 发表于 2019-11-5 22:05
题目描述
试计算在区间1 到n的所有整数中,数字x(0≤x≤9) 共出现了多少次?例如,在 1到11中,即在
...
n, x = map(int, input().split())
x = str(x)
n = str(list(range(n + 1)))
print(n.count(x)) zltzlt 发表于 2019-11-5 22:07
牛...牛逼看着我的代码流下了眼泪 yooooly 发表于 2019-11-5 22:20
牛...牛逼看着我的代码流下了眼泪
这还不简单,直接转化成字符串处理 zltzlt 发表于 2019-11-5 22:22
这还不简单,直接转化成字符串处理
我没想到字符串也能用liststr(list())而且count(x)会把里11的两个1都记上吗 zltzlt 发表于 2019-11-5 22:22
这还不简单,直接转化成字符串处理
这里是把一开始的n变成了列表吗 zltzlt 发表于 2019-11-5 22:22
这还不简单,直接转化成字符串处理
如果把list()里的n+1变成别的东西好像就行不通了 yooooly 发表于 2019-11-5 22:35
这里是把一开始的n变成了列表吗
是的。记得设置为最佳答案哦~
页:
[1]