前提・実現したいこと
rubyで整数を要素とする2次元配列 mat が与えられたとき,その要素をすべて足し合わせた結果を出力するメソッドsum(mat)を作成したいのですが、配列をしたのように設定したらエラーが起きました。どこがダメなのかご教授ください。
発生している問題・エラーメッセージ
sum [[1, 3, 5, 7]] TypeError: Array can't be coerced into Fixnum
該当のソースコード
def sum(mat) max = 0 aaa(mat).each_index do |i| max += aaa(mat)[i] end end def aaa(arr) if arr.size == 1 arr elsif arr.size == 2 bbb(arr[0],arr[1]) else bbb(arr[0], aaa(arr[1..-1])) end end def bbb(arr1,arr2) ret = Array.new(arr1.size, 0) arr1.size.times{|n| ret[n] += arr1[n] + arr2[n]} ret end
試したこと
irb> sum [[1, 2], [3, 4]]
=> 10
irb> sum [[-1, 0, 1], [-2, 0, 1]]
=> -1
上のような配列を試したところ正常に計算してくれました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/10 07:59