#はじめに
AtCoder に登録したら次にやること ~ これだけ解けば十分闘える!過去問精選 10 問 ~ - Qiita
こちらの記事を参考に初心者がAt corderに挑戦します。
目的としては、就職活動でのコーディングテスト対策です。
毎日1問を目標としてコツコツやってきます
わからないことは調べる精神です。ちょっとでもわからないなぁ、と思ったことは調べて解説と参考文献を載せますので、同じ内容でわからない人がいれば参考にししてください
1以上N以下の整数のうち、10進法での各桁の和がA以上B以下であるものの総和を求めよ
##制約
1≤N≤$10^4$
1≤A≤B≤36
入力はすべて整数
##入力
N A B
##出力
1以上N以下の整数の内、10進法での各桁の和がA以上B以下であるものの総数を出力せよ
入力例
20 2 5
出力例
84
20以下の整数の内、各桁の和が2以上5以下なのは、2,3,4,5,11,12,13,14,20だ。これらの和は84
#回答
N,A,B = gets.split.map(&:to_i)
number = 0
(1..N).each do |i|
sum = i % 10 + i / 10 % 10 + i / 100 % 10 + i / 1000 % 10 + i / 10000 % 10
number += i if A <= sum && sum <= B
end
puts number
#感想
$10^4$を1000だと勘違いしてエラーが。
なかなかエラーの原因がわからず、他の方の回答を見て、sum = ~ の処理が一桁足りないことに気が付き、解決に至った。🙄