このページについて

このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。

見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。

挑戦する課題

レベルアップ問題集スキルチェック見本問題セットから「Fizz Buzz (paizaランク C 相当)」を取り上げます。

以下は、問題公開 Web ページからの引用です。

問題

整数 N が入力として与えられます。

1からNまでの整数を1から順に表示してください。

ただし、表示しようとしている数値が、

  • 3の倍数かつ5の倍数のときには、”Fizz Buzz”
  • 3の倍数のときには、”Fizz”
  • 5の倍数のときには、”Buzz”

を数値の代わりに表示してください。

入力される値

入力は以下のフォーマットで与えられます。

  • N は1以上N以下の整数です。

考え方

ある数値 xy の倍数か否かを判断するには剰余演算子 % を使う。

このとき、ある数 x35 の最小公倍数 15 で割ったときのあまりが であれば "Fizz Buzz" であることに気づけばコードが簡素化できる。

さらに、 switch-case 文とパターンマッチを使い、 where 節で条件分岐を行うことでも実現可能。

解答例

愚直な例。

最小公倍数を使うとこのような感じ。

switch-case のパターンマッチを使うとこのような感じ。