LoginSignup
0
1

More than 5 years have passed since last update.

Fizz_Buzz問題にチャレンジ!

Last updated at Posted at 2018-12-04

Fizz_Buzz問題

問題文

1〜100までの数字をターミナルに出力してください。ただし、「3の倍数」のときは数字の代わりに文字列でFizzと、「5の倍数」のときはBuzz、両方の倍数である「15の倍数」のときはFizzBuzzと出力してください。

ひな形は以下です。
def fizz_buzz
# ここに処理を書き加えてください
end
fizz_buzz

解くまでの流れ

[とりあえず問題文を最後まで読む]→[情報を分けて考えてみる]→[情報とヒントを元にコードを書く]→[組み合わせて実行]→[実行結果から修正を加える]

1.とりあえず問題文を最後まで読む

文を最後まで読んでみるものの、あまり分からない。特に「1〜100までの数字をターミナルに出力してください。」や「倍数の条件式」に引っかかる。

2.情報を分けて考えてみる

全体を読んでも理解できなかったので分けて考えてみることにした。「1〜100までの数字をターミナルに出力してください。」の文では繰り返しの処理で最後に1ずつ足していけばいいと分かった。倍数の条件式では考えてもピンと来る式を思いつかなかった。

3.情報とヒントを元にコードを書く

ヒントの繰り返し処理while

while num <= 100 do
  num += 1
end

倍数の条件式

if num % 3 == 0
  puts "Fizz"
elsif num % 5 == 0
  puts "Buzz"
elsif num % 3 == 0 && num % 5 == 0
  puts "FizzBuzz"
else 
  puts num 
end

4.組み合わせて実行

完成したプログラム

def fizz_Buzz
  num  = 1
  while num <= 100 do
    if num % 3 == 0
      puts "Fizz"
    elsif num % 5 == 0
      puts "Buzz"
    elsif num % 3 == 0 && num % 5 == 0
      puts "FizzBuzz"
    else
      puts num
    end
    num += 1
  end
end
fizz_Buzz

コンソール

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
Fizz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
Fizz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
Fizz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
Fizz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
Fizz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
Fizz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz

5.実行結果から修正を加える

問題点、条件分岐を小さい数字から3の倍数、5の倍数、15の倍数の順に書いている。これでは15の倍数の時に3の倍数である”Fizz”が出力されてしまう。だから先に15の倍数を条件分岐を始めに持ってくる。

【修正後プログラム】

def fizz_Buzz
  num  = 1
  while num <= 100 do
    if num % 3 == 0 && num % 5 == 0
      puts "FizzBuzz"
    elsif num % 3 == 0
      puts "Fizz"
    elsif num % 5 == 0
      puts "Buzz"
    else
      puts num
    end
    num += 1
  end
end
fizz_Buzz

【コンソール】

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz
Fizz
22
23
Fizz
Buzz
26
Fizz
28
29
FizzBuzz
31
32
Fizz
34
Buzz
Fizz
37
38
Fizz
Buzz
41
Fizz
43
44
FizzBuzz
46
47
Fizz
49
Buzz
Fizz
52
53
Fizz
Buzz
56
Fizz
58
59
FizzBuzz
61
62
Fizz
64
Buzz
Fizz
67
68
Fizz
Buzz
71
Fizz
73
74
FizzBuzz
76
77
Fizz
79
Buzz
Fizz
82
83
Fizz
Buzz
86
Fizz
88
89
FizzBuzz
91
92
Fizz
94
Buzz
Fizz
97
98
Fizz
Buzz

解答は以上になります

0
1
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
1