🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

391閲覧

値の連続性が見つけられないです

ruuuu

総合スコア176

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/12/06 02:27

編集2020/12/06 02:29

FizzBuzz問題の課題を行なっているのですが、少々疑問な部分があり質問させて頂きました。
以下は、実装に必要な要件となります。

  • fizzNumに入力された値の倍数とbuzzNumに入力された値の倍数を小さい順に表示する
  • 各々倍数と一緒にfizz、buzzと表示させる
  • 両方の倍数である時にはfizzBuzzと表示させる
  • 表示させるのは二桁の値まで

疑問な点は入力と出力の関係です。
仮にFizzNum4BuzzNum6が入力された場合の出力例は以下になります。

Fizz:4 Buzz:6 Fizz:8 FizzBuzz:12 Fizz:16 Buzz:18 Fizz:20 FizzBuzz:24

Fizzに16が出力される部分までは、単純に一つ前のFizzの8の倍数である為に、「16」になっていると分かりますが、次になぜ、Buzzの値として「18」が出力されるのかが分からないです。
こちらの関係性が分からない為、どなたか、アドバイス頂けましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Zuishin

2020/12/06 03:41

6 の倍数だからです。4 の倍数と 6 の倍数の数列(4, 8, 12,...)と(6, 12, 18,...)を両方求めて混ぜ合わせ、小さい順に並べ直したものです。
ruuuu

2020/12/06 04:11 編集

なるほどです!一度コードを整理し、実装試してみます!
guest

回答2

0

ベストアンサー

Fizzに16が出力される部分までは、単純に一つ前のFizzの8の倍数である為に、「16」になっていると分かりますが、

いいえ。
「FizzBuzz:12」の時点で「Fizz x 3」「Buzz x 2」と相違が出ています。


次になぜ、Buzzの値として「18」が出力されるのかが分からないです。

ルール上、小さい順に出力する必要がありますが、Fizz(4),Buzz(6)の倍数を繰り返し構文で出力しても期待する結果になりません。
例えば、99までの値をキャッシュしておき、出力前にソートする実装が考えられます。

・fizzNumに入力された値の倍数とbuzzNumに入力された値の倍数を小さい順に表示する
・表示させるのは二桁の値まで

Re: ruuuu さん

投稿2020/12/06 03:10

think49

総合スコア18189

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ruuuu

2020/12/06 03:20 編集

ご回答ありがとうございます。 自分の認識の中で、少々勘違いが発生してしまっているのかもしれないのですが、 率直な所を申しまして >「FizzBuzz:12」の時点で「Fizz x 3」「Buzz x 2」と相違が出ています。 こちらの部分が理解出来ていない状況です。 自分の中でも間違った認識ではないかとの自覚はあるのですが、出力に関しましては、以下のようになるのではないかと思っております。 Fizz:4 Buzz:6 Fizz:8 FizzBuzz:12 Fizz:16  FizzBuzz:24 Fizz:32 FizzBuzz:48
think49

2020/12/06 03:27

> >「FizzBuzz:12」の時点で「Fizz x 3」「Buzz x 2」と相違が出ています。 > こちらの部分が理解出来ていない状況です。 for文で倍数をインクリメントした際に、Fizz,Buzzで倍数に相違がある点に疑問を持っていると認識していました。 > Fizz:4 > Buzz:6 > Fizz:8 > FizzBuzz:12 > Fizz:16  > FizzBuzz:24 > Fizz:32 > FizzBuzz:48 Buzzの倍数ベースで見ると「Buzz:6 -> FizzBuzz:12 -> Buzz:18」と遷移するはずですが、「Buzz:18」(6x3)はどうしてスキップされるのですか。
ruuuu

2020/12/06 03:39

自分、そもそも倍数というのを勘違いしてしまっていたのかもしれません。 今回、Buzzのケースですと、一番目が、6でありその倍の数が12、またその倍なので、24として考えてしまっていました... ベースの数を、1倍、2倍、3倍といった形で考えますと、出力例にも納得することが出来ました...
ruuuu

2020/12/06 03:40

少々、ハマってしまっていたので、ご回答頂き助かりました
guest

0

各々倍数と一緒にfizz、buzzと表示させる

この条件を満たしたから表示しているだけです。

投稿2020/12/06 02:42

編集2020/12/06 02:43
javahack

総合スコア1088

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問