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の問題で3の時はFizzと表示し、5の時Buzzと表示、15の時FizzBuzzと表示する

Posted at

#RubyのFizzBuzz練習問題を解く(今回はeach doを使用)

・1から30まで数える
・3の時はFizzと表示する
・5の時はBuzzと表示する
・15の時はFizzBuzzと表示する

まず、擬似コードを考える前に、情報を整理
どのようなコードが必要そうかを並べてみる。

①1から30まで数える
②もし3だったらFizzと表示する
③もし5だったらBuzzと表示する
④もし15だったらFizzBuzzと表示する

以上。

では、擬似コードっぽいやつ書いていく。

1から30まで数える(今回は、each do を使って)

if ○○なら
 puts ○○と表示する

elsif
   ○○なら
 puts ○○と表示する

elsif
   ○○なら 
 puts ○○と表示する
else
  それ以外なら
 puts ○○と表示する

ここにコードをあてていくと、考えがまとまりやすくなり、コードがすっきりしそう。
もし、仮説と違ったら擬似コードの考え方を実際の答えと比べてみる。

(1..30).each do|i|

    if i%15==0
        puts "FizzBuzz"
    elsif
        i%3==0
        puts "Fizz"
    elsif
        i%5==0
        puts "Buzz"
    else
        puts i
    end
end
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

このように表示されていればOKです。

#応用編:数字の横にFizzとBuzzをそれぞれつけてみる。

考え方はほとんど一緒
表示の仕方だけ変えればいいかな?っと仮説を立ててみる。
合ってたら自分を褒める。

(1..30).each do|i|

    if i%15==0
        puts "#{i} FizzBuzz"
    elsif
        i%3==0
        puts "#{i} Fizz"
    elsif
        i%5==0
        puts "#{i} Buzz"
    else
        puts i
    end
end

見やすくするため、一応数字と文字の間にスペースいれてます。

うまくいくと、以下のようになります。

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

以上となります。
ご参考いただけますと幸いです。

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?