アプリ版:「スタンプのみでお礼する」機能のリリースについて

ruby で 組み合わせの10C0から10C10までの値をすべて合計した値を求めるアルゴリズムを作ったのですが、undefined method '+" for nil:NilClass(No Method Error)となってしまいます。

def で

a(b,c)をbCcと定義しており、4の+jを書かなければ
ちゃんと、1,10、45、、252と計算され表示されます。
この値の合計を出したいのですが、なぜエラーになるのでしょうか。

1 i=0
2 j=0
3 while i <= 10
4 j = a(10,i) + j
5 i = i + 1
6 puts k
7 end

ーーーーーーーーーーーーーー
たとえば階乗を求めるアルゴリズムで

a=1
b=1
while a<=10 do
b = b * a
a = a + 1
end
puts b

の場合は、ちゃんと自己加算されます。

A 回答 (1件)

おそらく a(10,i) が、なんらかの引数の時に nil を返しているのでしょう。


で、そのタイミングで 「nil + 整数」という演算はできないので、質問のようなエラーになる、と。

あとは、関数 a のコードを見ないとなんとも言えません。

この回答への補足

そうなんです!!
メソッドはこれです。

このメソッドは a(10,4)=210とちゃんとでます。
--------------
def a(g,h)
puts

a=1
b=1

while a<=g do
b = b * a
a = a + 1
end

c=1
d=1

while c<=h do
d = d * c
c = c + 1
end

e=1
f=1

while e<=g-h do
f = f * e
e = e + 1
end

puts b / ( d * f )

end
ーーーーーーーーーーーーーーーーー
そして、問題がこれです。

aa=4
while aa <= 10
ab = a(10,aa)
end
puts ab


たとえばこれで実行すると
210
nil
とでます、どこがnilになっているのでしょうか?
nilとは引数が無効という意味でしょうか?

補足日時:2010/02/11 11:51
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!