逆FizzBuzz問題をPythonで解いた


逆FizzBuzz問題 (Inverse FizzBuzz)

初めは検討もつかず。 連続数列のどこが始まりか分からないし、どこが終わりかも分からないし、どこからどう調べればいいかまったく分からないといった感じ。しかし、ご飯を食べたり散歩しながらぼんやり考えている内にひらめき。

fizzbuzz関数は、3,5,15の最小公倍数が15なので、15を周期にしてfizz/buzz/fizzbuzzが決まったパターンで表れる。だから、任意のパラメータに対して、連続数列の始まりの値は1〜15の間だけ調べるだけで答えを出せる。16以上を調べても、同じパターンを調べるだけなので無駄。

ここまで分かったら、あと単純なシーケンスの比較の要領で、fizz/buzz/fizzbuzzのパターンとパラメータが同じかどうか比較すればいい。

これで間違ってたら恥ずかしいなあ。
あと、このブログテーマだとgistの埋め込み表示の行間が随分と空いてしまってどうしようみたいな。