【プログラミング初心者向け】Python,Ruby,PHPでFizzBuzz問題を解いてみる

f:id:daikiyano:20181031220035p:plain

本記事ではプログラミング初心者向けにFizzbuzz問題の概要とPython,Ruby,PHPでFizzBuzz問題の解き方を解説していきます。

FizzBuzz問題とは?

Fizz Buzz – Wikipedia

FizzBuzzはもともと英語圏で飲み会などの場で行われるゲームです。
参加者は円になって座り、最初の人は1を唱えて隣の人は次の数字を発言していきます。しかし、3の倍数の時には「Fizz」を唱え、5の倍数の時には「Buzz」、3と5の倍数の時には「FizzBuzz」を数字の代わりに発言しないといけないルールです。間違えて発言したり、発言出来なかった人は脱落していくゲームです。日本でいう山手線ゲームとかほうれん草ゲームとかですね。

このFizzBuzzゲームをプログラマーのテスト用に作られたのがFizzBuzz問題です。
エンジニアやプログラマー志願者がプログラムが書けるどうか試すときに使われる問題の一つとして使われているようです。
と言っても、インターンを含めエンジニア職として面接を受ける際にFizzBuzz問題を解かされるというケースはほとんどなさそうです。しかし、FizzBuzzにはプログラミングに必要とされる以下の基本的な要素が含まれていますので、覚えておいて損はありません。

  • 順次・・・上から順番に処理を実行する。→プログラムは基本的に上から実行されていくよ〜。
  • 反復・・・処理を繰り返す。→プログラムをループさせる。for文while文など。
  • 分岐・・・条件によって分岐を行い違う結果を表示させる。→if文など。

面接で解かされるケースはほとんどないと述べておきながら、私自身fizzbuzzチックな問題を解かされたことはあります。
ループや条件分岐を使って条件通りに文字を表示させられるかという簡単な問題でした。

FizzBuzz問題を解く

先月の下旬に、今年の夏からエンジニアとして転職した友人と箱根旅行に行ったのですが、夜中にビールを飲みながらFizzBuzz問題を解いてみました。

FizzBuzz問題には関数を作って表示させるやり方など複数ありますが、今回は通常のルール

  • 1から100までの数字を表示させる
  • 3の倍数の時には数字の代わりに「Fizz」を表示させる
  • 5の倍数の時には数字の代わりに「Buzz」を表示させる
  • 3と5両方の倍数の時には数字の代わりに「FizzBuzz」と表示させる

で行いたいと思います。
今回は、私の使用したことのある言語「Ruby」、「PHP」、「python」で解いてみました!

for i in range(1,101):
    if i % 3 == 0 and i % 5 == 0:
        print('Fizz Buzz')
    elif i % 3 == 0:
        print('Fizz')
    elif i % 5 == 0:
        print('buzz')
    else:
        print(i)
for i in 1..100
    if i % 3 === 0 && i % 5 === 0
        puts "fizzbuzz";
    elsif i % 3 === 0
        puts "fizz";
    elsif i % 5 === 0
        puts "buzz";
    else
        puts i
    end
end

<?php
    for ($i=1; $i < 100 ; $i++) {
        if (($i % 3 === 0) && ($i % 5 === 0)) {
            echo "fizzbuzz\n";
        } elseif ($i % 3 === 0) {
            echo "fizz\n";
        } elseif ($i % 5 === 0) {
            echo "buzz\n";
        } else {
            echo $i."\n";
        }
    }
?>




このような感じでFizzBuzz問題を解けるようになるとプログラミング文法に触れることが出来ます。
プログラミング初心者の方は是非FizzBuzz問題に挑戦することをおすすめしますし、普段エンジニアをやられている方も初心に戻ってFizzBuzz問題を解いてみるのも
ありかなあと思いました。エンジニアの方には物足りない問題なので、縛りなどを設けたら難易度も上がり面白そうです。
以上、FizzBuzz問題についてでした!

【プログラミング学習している学生向け】長期のエンジニアインターンシップの探し方

本記事ではプログラミング学習している学生向けに長期のエンジニアインターンシップの探す方法としておすすめの求人サイトを紹介していきます。本記事を通して各求人サイトの特徴を理解し、効率よく求人サイトを活用していきましょう。 …

学生がエンジニアインターンに参加するのに必要なスキルレベルは?

本記事では学生がエンジニアインターンに参加するのに必要なスキルレベルについて書いていきます。 …

【学割あり】大学生におすすめの安いプログラミングスクール四選

本記事では大学生におすすめの学割が利用できて安いプログラミングスクール五つを比較ししながらまとめていきます。 プログラミングスクールに通いたいけど、たくさんスクールがあってどこがいいか分からないという方に本記事ではプログラミングスクールを選ぶ際のポイントと おすすめのプログラミングスクールを五つを比較しながら特徴をまとめていきます。 …

>文系エンジニア大学生の技術ブログ

文系エンジニア大学生の技術ブログ

社会が多様化していく中、大学生の学生生活も多様であるべきと考えています。主にエンジニア向けにITやプログラミングなどの技術系と大学生向けに休学、留学、海外生活、トビタテ留学、長期インターンに関する記事を書いています。