LoginSignup
0
0

More than 3 years have passed since last update.

【初心者向け】Fizzbuzzをメソッドを使用して解く

Posted at

Fizzbuzzの問題を応用し、数字の横にFizzbuzzを表示させてみた。

条件
・1~100までを表示させる
・3は数字の3とその横にfizzと表示
・5は数字の5とその横にbuzzと表示
・15は数字の15とその横にfizzbuzzと表示
・それぞれfizz,buzz,fizzbuzzのメソッドを使用すること

擬似コードを書く


def fizzbuzz
  #15と表示
  #15の横にfizzbuzzと表示させる
end

def fizz
  #3と表示
  #3の横にfizzと表示させる
end

def buzz
  #5と表示
  #5の横にbuzzと表示させる
end


1~100までの繰り返し文
 もし15で割って0なら
    fizzbuzzメソッドへ
  もし3で割って0なら
    fizzメソッドへ
  もし5で割って0なら
    buzzメソッドへ
  その他は
    数字をそのまま表示
  end
end

コーディングしていく


def fizzbuzz(num)
  print num
  num = "fizzbuzz"
  puts ":#{num}"
end

def fizz(num)
  print num
  num = "fizz"
  puts ":#{num}"
end

def buzz(num)
  print num
  num = "buzz"
  puts ":#{num}"
end

(1..100).each do |num|
  if num % 15 == 0
    fizzbuzz(num)
  elsif num % 3 == 0
    fizz(num)
  elsif num % 5 == 0
    buzz(num)
  else
    puts num
  end
end

ポイント

・引数のnumを除いてやってみると、Nameerrorが出ます。
・printは改行せずに表示してくれます。
・putsは改行します。

動作確認

1
2
3:fizz
4
5:buzz
6:fizz
7
8
9:fizz
10:buzz
11
12:fizz
13
14
15:fizzbuzz
16
17
18:fizz
19
20:buzz
21:fizz
22
23
24:fizz
25:buzz
26
27:fizz
28
29
30:fizzbuzz
31
32
33:fizz
34
35:buzz
36:fizz
37
38
39:fizz
40:buzz
41
42:fizz
43
44
45:fizzbuzz
46
47
48:fizz
49
50:buzz
51:fizz
52
53
54:fizz
55:buzz
56
57:fizz
58
59
60:fizzbuzz
61
62
63:fizz
64
65:buzz
66:fizz
67
68
69:fizz
70:buzz
71
72:fizz
73
74
75:fizzbuzz
76
77
78:fizz
79
80:buzz
81:fizz
82
83
84:fizz
85:buzz
86
87:fizz
88
89
90:fizzbuzz
91
92
93:fizz
94
95:buzz
96:fizz
97
98
99:fizz
100:buzz

こんなお遊びがお役に立てると幸いです。


ここからさらにFizzbuzzを遊んでいきます。
fizzbuzzの際は、さらにアホゥと叫ぶコードを追加していきます。

っといっても引数を追加して表示させるだけなのですが、

fizzbuzzの際に、さらにアホゥと数字の横に並べて表示させる


def fizzbuzz(num, aho)
  print num
  num = "fizzbuzz"
  aho = "アホゥ!"
  print ":#{num}"
  puts "#{aho}"
end

def fizz(num)
  print num
  num = "fizz"
  puts ":#{num}"
end

def buzz(num)
  print num
  num = "buzz"
  puts ":#{num}"
end


(1..100).each do |num, aho|
  if num % 15 == 0
    fizzbuzz(num, aho)
  elsif num % 3 == 0
    fizz(num)
  elsif num % 5 == 0
    buzz(num)
  else
    puts num
  end
end

動作確認(アホゥver)

1
2
3:fizz
4
5:buzz
6:fizz
7
8
9:fizz
10:buzz
11
12:fizz
13
14
15:fizzbuzzアホゥ!
16
17
18:fizz
19
20:buzz
21:fizz
22
23
24:fizz
25:buzz
26
27:fizz
28
29
30:fizzbuzzアホゥ!
31
32
33:fizz
34
35:buzz
36:fizz
37
38
39:fizz
40:buzz
41
42:fizz
43
44
45:fizzbuzzアホゥ!
46
47
48:fizz
49
50:buzz
51:fizz
52
53
54:fizz
55:buzz
56
57:fizz
58
59
60:fizzbuzzアホゥ!
61
62
63:fizz
64
65:buzz
66:fizz
67
68
69:fizz
70:buzz
71
72:fizz
73
74
75:fizzbuzzアホゥ!
76
77
78:fizz
79
80:buzz
81:fizz
82
83
84:fizz
85:buzz
86
87:fizz
88
89
90:fizzbuzzアホゥ!
91
92
93:fizz
94
95:buzz
96:fizz
97
98
99:fizz
100:buzz

ここは違うよ。または、ここはこうしたほうがセンスいいんじゃない?
等々ございましたらご指摘いただけますと幸いです。

最後までみていただき、ありがとうございました。

0
0
1

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