MTDK1

FizzBuzz

目次:プログラミング学習


この問題が解けなければプログラマーじゃない! というわけで FizzBuzz 問題をといてみてください。

遊び方

Fizz Buzz(フィズ・バズ、Bizz BuzzやBuzzとも呼ばれる)は英語圏で長距離ドライブ中や飲み会の時に行われる言葉遊びである。 ただし、3で割り切れる場合は「Fizz」(Bizz Buzzの場合は「Bizz」)、5で割り切れる場合は「Buzz」、両者で割り切れる場合(すなわち15で割り切れる場合)は「Fizz Buzz」(Bizz Buzzの場合は「Bizz Buzz」)を数の代わりに発言しなければならない。発言を間違えた者や、ためらった者は脱落となる。

出典:Fizz Buzz - ウィキペディア

Fizz Buzz 問題

このゲームをコンピュータ画面に表示させるプログラムとして作成させることで、コードが書けないプログラマ志願者を見分ける手法をJeff AtwoodがFizzBuzz問題 (FizzBuzz Question) として提唱した。その提唱はインターネットの様々な場所で議論の対象になっている。

出典:Fizz Buzz - ウィキペディア

あなたはプログラマーですか?

B DevUx の勉強会の参加条件をプログラマーとしています。 勉強会へ参加される方は、是非、この問題を実際にプログラミングしてみてください。

  1. 1 から 100 までの数を画面に出力します。
  2. 3 で割り切れる数の時は Fizz を数の代わりに出力してください。
  3. 5 で割り切れる数の時は Buzz を数の代わりに出力してください。
  4. 3 でも 5 でも割り切れる数の時は Fizz Buzz を数の代わりに出力してください。

使用する言語や文字数などの制限はありません。

解答例 (Rust)

1
2
3
4
5
6
7
8
9
10
11
12
13
fn main() {
    for i in 1..101 {
        if i % 3 == 0 && i % 5 == 0 {
            println!("FizzBuzz");
        } else if i % 3 == 0 {
            println!("Fizz");
        } else if i % 5 == 0 {
            println!("Buzz");
        } else {
            println!("{}", i);
        }
    }
}
1
2
cargo run
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

特にコメントや解説はありませんが、言語が Rust であっても何をしているかは読めるのではないでしょうか。

問題文をそのままプログラミングすると解答例のようになります。 制限を増やしていくことで問題の難易度が上がっていきます。

このサイトが面白いと思います。言語は JavaScript です。

comments powered by Disqus

Related Posts