Я использую Ruby v1.9.1 для написания программы с функцией Аккермана для моего класса в университете.Код следующий:
def ackermann(n,m)
if n == 0 && m > 0
return m+1
elsif n > 0 && m == 0
return ackermann(n-1,1)
elsif n > 0 && m > 00
return ackermann(n-1,ackermann(n,m-1))
else
puts "Wrong input, m and n must be higher than 0"
end
end
puts ackermann(5,5)
Это очень рекурсивная функция.Поэтому я получаю сообщение об ошибке «Уровень стека слишком глубокий (SystemStackError)».Есть ли способ или способ исправить эту ошибку?