質問: FizzBuzz問題の課題を行なっているのですが、少々疑問な部分があり質問させて頂きました。 以下は、実装に必要な要件となります。 * fizzNumに入力された値の倍数とbuzzNumに入力された値の倍数を小さい順に表示する * 各々倍数と一緒にfizz、buzzと表示させる * 両方の倍数である時にはfizzBuzzと表示させる * 表示させるのは二桁の値まで 疑問な点は入力と出力の関係です。 仮に`FizzNum`に`4` 、`BuzzNum`に`6`が入力された場合の出力例は以下になります。 ``` Fizz:4 Buzz:6 Fizz:8 FizzBuzz:12 Fizz:16 Buzz:18 Fizz:20 FizzBuzz:24 ``` `Fizz`に16が出力される部分までは、単純に一つ前の`Fizz`の8の倍数である為に、「16」になっていると分かりますが、次になぜ、`Buzz`の値として「18」が出力されるのかが分からないです。 こちらの関係性が分からない為、どなたか、アドバイス頂けましたら幸いです。
回答: > > Fizzに16が出力される部分までは、単純に一つ前のFizzの8の倍数である為に、「16」になっていると分かりますが、 > > > いいえ。 「FizzBuzz:12」の時点で「Fizz x 3」「Buzz x 2」と相違が出ています。 > > 次になぜ、Buzzの値として「18」が出力されるのかが分からないです。 > > > ルール上、小さい順に出力する必要がありますが、Fizz(4),Buzz(6)の倍数を繰り返し構文で出力しても期待する結果になりません。 例えば、99までの値をキャッシュしておき、出力前にソートする実装が考えられます。 > > ・fizzNumに入力された値の倍数とbuzzNumに入力された値の倍数を**小さい順に表示する** > > ・表示させるのは**二桁の値まで** > > > Re: ruuuu さん