前提・実現したいこと
AtCoderのABC083Bの問題をpythonで解いているのですが、ほとんどのテストコードでACなのですが一部どうしてもWAが出てしまいます。どこが間違っているのかがわからなくて困っているので、教えていただきたいです。
###問題文
問題文
1以上N以下の整数のうち、10進法での各桁の和がA以上B以下であるものの総和を求めてください。
制約
1≤N≤10^4
1≤A≤B≤36
入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
N A B
出力
1以上N以下の整数のうち、10進法での各桁の和がA以上B以下であるものの総和を出力せよ。
書いたソースコード
python(3.8.2)
1n, a, b = map(int, input().split()) 2 3l = [] 4 5if n < 10: 6 for i in range(n+1): 7 if a <= i <= b: 8 l.append(i) 9 10if 10 <= n < 10**2: 11 for i in range(n+1): 12 x = i // 10 13 y = i - x * 10 14 if a <= x + y <= b: 15 l.append(i) 16 17if 10**2 <= n < 10**3: 18 for i in range(n+1): 19 x = i // 100 20 y = (i - x * 100) // 10 21 z = i - x * 100 - y * 10 22 if a <= x + y + z <= b: 23 l.append(i) 24 25if 10**3 <= n < 10**4: 26 for i in range(n+1): 27 x = i // 1000 28 y = (i - x * 1000) // 100 29 z = (i - x * 1000 - y * 100) // 10 30 w = i - x * 1000 - y * 100 - z * 10 31 if a <= x + y + z + w <= b: 32 l.append(i) 33 34if n == 10**4: 35 if a <= 1 <= b: 36 l.append(1) 37 38print(sum(l))
回答2件
あなたの回答
tips
プレビュー