ある配列a[4 ,3 ,6 ,1 ,3]があります。
この配列を[1..3],[1..5],[2..3]のような範囲を示している配列をわたされて、
渡された範囲にある配列aの平均をとり、この平均が6を超えていないとその6を超えるように、
範囲のなかの各要素に同じ値だけたしていきたいのです。
最終出力は,[8 7 10 3 5]にしたいです。
下記コードのような感じに書いているのですが、
繰り返しの部分で配列が2つになりhの部分が二回目で計算されません。
なにか他に良い方法が浮かばないのです。
また、配列がもう一つ必要な気がするのですが、
どこにどのような配列が必要なのかが知りたいです。
なにかアドバイス的なことやこういう思考をしたらときやすいよといったことでも
すごくありがたいので、よろしくおねがします。
このもやもやをなんとかはらしたいです。
Ruby
1 2a = [4,3,6,1,3] 3b = [[1..3][1..5][2..3]] 4 5 63.times do 7 c = (b[i][0]-1..b[i][1]-1) 8 h = a[c] 9 if h.sum / 3 < 6 10 j = b - (l / 3) 11 d = a[g].map {|x| x + j } 12 a[g] = d 13 end 14 i += 1 15end 16 17# 最終出力 18 [8 7 10 3 5] 19
回答1件
あなたの回答
tips
プレビュー