問題
解答と解説
#7以上7777777以下の配列を範囲で作ってから
#7の倍数の数字と文字列に変換してから文字列の7が含まれる配列を作成する
seventh_array = [*7..7777777].select{ |i| i % 7 == 0 && i.to_s.include?('7')}
#↓以下のような配列になっていれば成功している
#[7, 70, 77, 147, 175, 217, 273, 287, 357, 371, 378, 427, 476,・・・7777777 ]
#カウンターを作り0で初期化
counter = 0
#繰り返し処理をする
seventh_array.each do |number|
#文字列の7がいくつあるか.countで数えてカウンターに加算する
counter += (number.to_s).count("7")
end
# カウンターの数を出力
puts counter
短くすると
#7以上7777777以下の配列を範囲で作ってから、7の倍数の数字のみの配列にする
#文字列に変換してから文字列の7が含まれるものに抽出する
seventh_array = [*7..7777777].select{ |i| i % 7 == 0 && i.to_s.include?('7')}
#カウンターを作り0で初期化
counter = 0
#文字列の7がいくつあるか.countで数えてカウンターに加算する
seventh_array.each { |number| counter += (number.to_s).count("7") }
# カウンターの数を出力
puts counter