fizzbuzzかいてみた
背景
- とある機会でfizzbuzzを書いたので改めて残しておく
fizzbuzzとは(説明不要だと思うが一応)
・1からnまでの数をプリントするプログラムを書け
・ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること
方針
コード
<?php class FizzBuzz { function __construct() { } const MAP = [ 3 => 'Fizz', 5 => 'Buzz', ]; public function main() { for ($i = 1; $i <= 15; $i++) { echo $this->fizzbuzz($i); } } private function fizzbuzz(int $i): string { $ret = ''; // 割り切れるものがあれば対応する文字列を出力 foreach(self::MAP as $k => $v) { if ($i % $k !== 0) { continue; } $ret .= $v; } // 割り切れるものがなければ入力数値を出力 if (!$ret) { $ret = $i; } $ret .= "\n"; return $ret; } } $fb = new FizzBuzz(); $fb->main();