0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

FizzBuzz問題応用

Posted at

FizzBuzzという言葉遊びがあります。1から数を数えていく際に、それが3の倍数だったら「Fizz」, 5の倍数だったら「Buzz」と言う、というもの。ただし、15の倍数の時は「FizzBuzz」と言います。

例) 1, 2, Fizz, 4, Buzz, Fizz ,,,,

このFizzBuzzを再現できるメソッドを作成。いくつまでカウントするか、引数で指定できるものとします。

雛形
def fizzbuzz(max_num)
  if 

  elsif

  elsif

  else

  end
end

puts 'いくつまで数えますか?'
num = gets.to_i
fizzbuzz(num)

範囲を指定して繰り返し
範囲を指定して繰り返しをする場合は、範囲演算子(..)を使用。
以下のように使用します。

1
(開始する値..終了する値)
具体的には以下のように使用できます。

# 1~6までの範囲を指定して、繰り返し表示
(1..6).each do |num|
  puts num
end
def fizzbuzz(max_num)

  (1..max_num).each do |num|
    if num % 15 == 0
      puts "FizzBuzz"
    elsif num % 5 == 0
      puts "Buzz"
    elsif num % 3 == 0
      puts "Fizz"
    else
      puts num
    end
  end
end

puts 'いくつまで数えますか?'
num = gets.to_i
fizzbuzz(num)

3行目で範囲演算子..を使用して、1から入力した値までを繰り返し処理します。

4行目以下で値によって条件分けが行われます。

例えば、入力した値が15だった場合、1~15までの範囲で、条件分岐の処理が繰り返し行われます。
ターミナルの出力は、以下のように結果になります。

いくつまで数えますか
15

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
# 15まで繰り返すので、ここで処理が終了します
0
0
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?