У меня был этот вопрос на мой взгляд в течение очень долгого времени, но я не могу понять ответ. Вопрос в том, что если каждая рекурсивная функция имеет итеративную функцию, которая делает то же самое?Можно ли переписать каждую рекурсивную функцию как итеративную функцию?
Например,
factorial(n) {
if (n==1) { return 1 }
else { return factorial(n-1) }
}
Это можно легко переписать итеративно:
factorial(n) {
result = 1;
for (i=1; i<=n; i++) {
result *= i
}
return result
}
Но есть много других, более сложных рекурсивных функций, так что я не знаю ответа вообще. Это может быть и теоретический вопрос в области информатики.
Возможный дубликат [Может ли каждая рекурсия быть преобразована в итерацию?] (Http://stackoverflow.com/questions/931762/can-every-recursion-be-converted-into-iteration) – Sylwester