0
0

More than 1 year has passed since last update.

【Ruby】7の倍数の数値の中に7が何回現れるかをカウントするロジック

Posted at

Rubyを使ったロジックについて学習しています。
数字に関するお題について、回答し、ロジックを分解して考えていきます。

問題

7777777以下の7の倍数を全て取り出したとき、数字「7」は何回現れるか?

回答コード

def count_number(number)
  list = []
  for i in 1.upto(number) do
    if (i % 7 == 0 )
      list.append(i)
    end
  end
  list.sum{|i| i.to_s.count("7")}
end

puts "#{count_number(7777777)}"

出力結果

777784

コードの解説

  • このコードは、1から指定した数値までの中で、7の倍数の数値の中に7が何回現れるかをカウントするコードである。
  • まず、count_number(number)っていう関数を定義している。引数には数値が渡されることを期待している。
  • 次に、list = []で空の配列を作成している。これは後で7の倍数の数値を格納するための配列である。
  • その後、for i in 1.upto(number) doのループで1から指定した数値までをチェックしている。
  • i % 7 == 0の部分で、その数値が7の倍数かどうかを判断している。もし7の倍数だったら、list.append(i)でその数値を配列に追加している。
  • ループが終わったら、list.sum{|i| i.to_s.count("7")}で配列の中の数値を文字列に変換し、その中に7が何回現れるかをカウントして全て足している。
  • i.to_s.count("7")の部分で、数値を文字列に変換して7の数をカウントしている。
  • 最後に、puts "#{count_number(7777777)}"で関数を呼び出し、結果を出力している。
  • コードを実行すると、1から7777777までの中で7の倍数の数値の中に7が何回現れるかが表示される。

参考記事

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0