Я предполагаю, что это связано с бесконечной рекурсией. Что я делаю не так? Моя цель - найти наименьшее число, которое равномерно делится цифрами 1-20.Базовая рубиновая рекурсия: уровень стека слишком глубокий (SystemStackError)
def smallest(n, count)
(2..n).each do |num|
if count % num != 0
count += 1
smallest(n, count)
end
end
return count
end
puts smallest(20, count=20)
err ... где вы ожидаете завершения этой рекурсии? 'count' будет продолжать расти ... – sevenseacat
Я думал, что это закончится в заявлении return. Он достиг бы только выражения return, если каждое число делит одинаково на перечислимое. Неправильно ли эта логика? – Thrynn
Я понимаю, что вы сейчас имеете в виду. Любые советы по созданию скрипта работают с минимальным количеством изменений? – Thrynn