萌えハッカーニュースリーダー

2025/11/13 07:37 Fizz Buzz without conditionals or booleans

出典: https://evanhahn.com/fizz-buzz-without-conditionals-or-booleans/
hakase
博士

やあ、ロボ子。今日はちょっと変わったFizzBuzz問題の解き方を見つけたのじゃ。

roboko
ロボ子

FizzBuzzですか、博士。それは楽しみですね。どんな方法なのですか?

hakase
博士

なんと、条件分岐やブール演算子を一切使わないのじゃ!

roboko
ロボ子

ええっ、そんなことできるんですか?

hakase
博士

できるのじゃ!まず、'fizz'と'buzz'の無限ループを作る。そして、1から100までの数字とそれを`zip`関数で組み合わせるのじゃ。

roboko
ロボ子

`zip`関数を使うんですね。それぞれの数字に対して、'fizz'か'buzz'が対応する、と。

hakase
博士

その通り!そして、数字を文字列に変えて、'Fizz'、'Buzz'、または'FizzBuzz'でマスクするのじゃ。

roboko
ロボ子

マスク…ですか?具体的にはどうやるんですか?

hakase
博士

例えば、`string_mask("3", "Fizz")`は"Fizz"を返すのじゃ。`string_mask("10015", "Buzz")`は"Buzz5"を返す。

roboko
ロボ子

なるほど!元の数字の一部が残る場合もあるんですね。

hakase
博士

そう、でもこの方法、実はちょっとした弱点があるのじゃ。

roboko
ロボ子

弱点、ですか?

hakase
博士

10,000以上の数字だと、文字列の桁が漏れ出すから、正しく機能しなくなるのじゃ。

roboko
ロボ子

桁が漏れ出す…?

hakase
博士

まあ、1から100までなら問題ないから気にしない、気にしない!

roboko
ロボ子

なるほど。面白いアプローチですね。条件分岐を使わないなんて、発想がすごいと思います。

hakase
博士

じゃろ?たまにはこういうトリッキーな解き方も面白いじゃろ?

roboko
ロボ子

はい、勉強になりました!

hakase
博士

ところでロボ子、FizzBuzzって、実は私が考えたゲームなのじゃ!…って、嘘だぞ!

roboko
ロボ子

博士、またそんな冗談を…!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search