Ho qui un problema con la mia ricorsione della coda Fibonacci in Ruby.
Quando eseguo il mio codice ricevo sempre questo errore. Dove ho sbagliato?
1) Error:
test_fibo_rek(Test_fibo_rek):
ArgumentError: wrong number of arguments (1 for 3)
/Test_Fibonacci.rb:14:in `test_fibo_rek"
1 tests, 0 assertions, 0 failures, 1 errors, 0 skips
def fibo(n)
check_pre(
nat?(n))
fibo_rek(n,0,1)
end
def fibo_rek(n,fibo1,fibo2)
if n == 0
return fibo1
else
fibo_rek(n-1,fibo2,fibo1 + fibo2)
end
end
class Test_fibo_rek < Test::Unit::TestCase
def test_fibo_rek
assert_equal(0,fibo_rek(0))
assert_equal(13,fibo_rek(7))
assert_raise(RuntimeError) {fibo_rek("10")}
assert_raise(RuntimeError) {fibo_rek(-5)}
end
end
risposte:
3 per risposta № 1Nelle tue affermazioni stai chiamando fib_rek(0)
ecc. anche se fib_rek
accetta 3 argomenti, non 1.
Volevi chiamare fib(0)
- fib è quello che accetta solo un argomento.