質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

3回答

1279閲覧

FizzBuzz問題

bigocean

総合スコア7

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2019/08/05 06:20

編集2019/08/05 07:28

前提・実現したいこと

ここに質問の内容を詳しく書いて
3の倍数はFizz、5の倍数はBuzz、15の倍数はFizzBuzzと表示されるプログラムを組んでいます
300以下の値を出力したいのですが、コードがわかりません ご教授お願いします

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

Ruby
(1..10000).each do |n|
if n % 15 == 0
puts "FizzBuzz" #putsをprintに置き換えると改行なしになる
elsif n % 3 == 0
puts "Fizz"
elsif n % 5 == 0
puts "Buzz"
else
puts n

end
end

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

azuapricot

2019/08/05 06:23

どこまで出来て、現状何がわからなくて詰まっているのかもっと詳細に書きましょうね。 あとはマークダウンでコードを囲むのに失敗しているので編集しなおしてください
y_waiwai

2019/08/05 06:25

このままではコードが見づらいので、質門を編集し、<code>ボタンで、出てくる’’’の枠の中にコードを貼り付けてください また、エラーメッセージも提示しましょう
guest

回答3

0

4, 10 の両方で割ったあまりが0の場合'FizzBuzz'としたいのだと思いますが、
その場合、除数は 16 では無いと思います。

投稿2019/08/05 06:27

zvub1123

総合スコア230

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

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

0

ベストアンサー

「Range の値を固定したい」であるなら、こう、ですか...?

ruby

1def fizzbuzz(n) 2 if n.modulo(15).zero? 3 'FizzBuzz' 4 elsif n.modulo(3).zero? 5 'Fizz' 6 elsif n.modulo(5).zero? 7 'Buzz' 8 else 9 n.to_s 10 end 11end 12 13range = (1..10_000) 14 15pp range.lazy.map(&method(:fizzbuzz)).take(300).to_a 16# => 17# ["1", 18# "2", 19# "Fizz", 20# "4", 21# "Buzz", 22# "Fizz", 23# ... 24

やろうと思えば「1〜10,000」の範囲を実際に処理することもできますが、 lazy を用いることでその処理範囲を狭めることができます

なにか参考になれば幸いです

Link

投稿2019/08/05 08:20

gouf

総合スコア2321

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

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

bigocean

2019/08/05 23:38

ありがとうございます!
gouf

2019/08/06 04:46

ベストアンサー設定ありがとうございます... でももう少し "ヒント" がほしかったです... 次回はもう少し詳しくお願いします...!!
guest

0

300以下ってただ出力する数値を300までにしたいってだけですか?
調べたらすぐわかりそうですけど10000を300にかえるだけじゃないんですか?

Ruby

1(1..300).each do |n| 2if n % 15 == 0 3puts "FizzBuzz" #putsをprintに置き換えると改行なしになる 4elsif n % 3 == 0 5puts "Fizz" 6elsif n % 5 == 0 7puts "Buzz" 8else 9puts n 10 11end 12end

投稿2019/08/05 07:31

azuapricot

総合スコア2341

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

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

bigocean

2019/08/05 23:28

入力を10000 出力を300以下という設定をしたかったものですから、説明不足で申し訳ありませんでした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問