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

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

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

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

Q&A

解決済

2回答

309閲覧

Ruby ループ内の条件式でループを用いる際に、個別の配列に対して計算を行いたい

shirou

総合スコア15

Ruby

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

0グッド

0クリップ

投稿2018/09/29 13:49

編集2018/09/30 02:38

前提・実現したいこと

Rubyのループ処理における配列・変数の適切な記述箇所

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

個別の配列に対して実装したい処理が、正しく適用されていない。

該当のソースコード

ruby

1 2x = [2,1000] 3price = [] 4count = [] 5array = [[100,200,100,50],[200,600,200,100]] 6x[0].times do |i| 7 if array[i][0] > x[1] 8 price << array[i][1] 9elsif array[i][0] < x[1] 10 array[i][0].step(x[1],array[i][2]){|n| count << n} 11 price << array[i][1].to_i + array[i][3].to_i*count.length 12elsif array[i][0] == x[1] 13 price << array[i][1].to_i + array[i][3] 14end 15end 16 17price.sort! 18puts "#{price.first} #{price.last}"

試したこと

新たな配列を設けてa << countとしてみたが結果が変わらなかった。

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

Ruby 2.5.1

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

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

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

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

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

dice142

2018/09/29 14:05

質問箇所以外にも処理があり把握しにくいので、元の問題文とかページを教えていただけますか?
asm

2018/09/29 14:44

count配列はlengthだけしか使わないのでしょうか? それとも、この後に使う予定があるのですか?
shirou

2018/09/29 15:45 編集

返信が遅れて申し訳ありません。 問題文を追記致しました。 count配列はlengthのみに用意した配列になります。
guest

回答2

0

すみません、入力形式からもしものことを想定しておくべきでした。

(3)ブログ・SNS等の各種媒体(インターネット媒体に限られず、不特定多数が閲覧可能なものを全て含む。)上において、当社がpaizaで出題した問題の内容、当該問題に対する解答、解答へのヒント等の示唆およびカンニング等の不正を助長する内容等を掲載する行為。

以上のPaizaの利用規約に違反します。

投稿2018/09/29 15:52

dice142

総合スコア5158

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

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

shirou

2018/09/29 22:10

問題文にまつわる記述を削除致しました。 気になっていたのは表題通りの処理の記述でしたので、質問の削除を申請しておきます。
guest

0

ベストアンサー

何を処理しているのか、よく分かりませんが、

正しくは1回目が222回目が30となれば良いのですが、1回目22,2回目52となってしまいます。

ということであれば、count = []は、x[0].timesのループの中に入れるのが正しいのでは?

投稿2018/09/29 14:51

otn

総合スコア84505

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

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

shirou

2018/09/29 15:48

ご指摘通りでした・・! 問題文の詳細を掲載することは許可されていないので一部抜粋という形での投稿になり申し訳ありません。 ループ内の処理に用いる配列を、ループ外に用意していることが原因だったのですね。 コードだけの記載で不備がありましたが、処理に関するコードの記述ミスだと思っていたので希望通りの回答になります。 ありがとうございます!
otn

2018/09/29 15:58

なんか、全般的に、あまり考えないで書いたプログラムに見えます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問