AtCoder B問題でWAとなってしまう理由がわかりません。
前提・実現したいこと
AtCoder のAtCoder Beginer Contest083のB問題を解いていて、
"""
問題文
1以上 N以下の整数のうち、10進法での各桁の和が A以上 B以下であるものの総和を求めてください。
制約
1 ≤ N ≤ 10^4
1 ≤ A ≤ B ≤36
入力はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
N A B
出力
1以上 N以下の整数のうち、10進法での各桁の和が A以上 B以下であるものの総和を出力せよ。
"""
この問題を解いているとき、数列を文字列にして取り出して足していけばいいかなと思ったんですが、一部の数列にしか適用されず、その原因がわからず困っています。
発生している問題・エラーメッセージ
入力を(20 2 5)としたところ、 WA 正答84のところ50と出てしまいます。
該当のソースコード
python3
1line = list(map(int,input().split())) 2n = line[0] 3a = line[1] 4b = line[2] 5 6nums = [] 7sowa = 0 8for num in range(n+1): 9 count = len(str(num)) 10 for i in range(count-1): 11 num = str(num) 12 sowa += int(num[i]) 13 if a <= sowa and sowa <= b: 14 nums.append(num) 15answer = 0 16for j in nums: 17 answer += int(j) 18print(answer)
試したこと
最後のprint(answer)をprint(nums)にしてリストの中身を確認したところ、
['11', '12', '13', '14']
でした。
20以下の整数のうち、各桁の和が 2以上 5以下なのは 2,3,4,5,11,12,13,14,20なのでこれらすべてが本来はリストに入っているはずです。
補足情報(FW/ツールのバージョンなど)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 05:19