рекурсия java
Автор Колобок Зайцев задал вопрос в разделе Другие языки и технологии
Рекурсия(Java2): в чём её смысл и как ей пользоваться? и получил лучший ответ
Ответ от Krab Вark[гуру]
Рекурсия - неявный цикл прямым или косвенным вызовом функцией самой себя. В функции будет условный оператор или выражение с проверкой, надо ли для дальнейшего вычисления вызвать функцию снова или можно возвратить результат.
"У попа была собака... " - классический пример, только надо вставить условие завершения, например, когда поп не мог уже писать более мелким шрифтом :))
Например, в Java рекурсивная функция вычисления факториала может выглядеть так:
public static int fact(int x){ if(x != 1)return x*fact(x-1); else return 1; }
Смысл рекурсии в том, что многие алгоритмы (не все, конечно) через рекурсивные функции записываются гораздо короче и проще, чем без использования рекурсии.
смысл использования рекурсивных программ в краткости кода.
но на практике краткость кода не всегда означает оптимальность и устойчивость работы программы.. .
одним из примеров "нехорошести" рекурсивных вычислений будет выпадение программы в осадок по причине переполнения стека.... поэтому, делая выбор в пользу рекурсий, всегда надо учитывать природу проблемы для решения которой пишется программа...
> Пояснение нужно конкретно по Java, и не покаким другим языкам.
Рекурсия в программировании, дитятко, - понятие языконезависимое.
рекурсия - термин из программирования и ко всем языкам он относится одинаково!! ! так что читаем мат. часть и рассматриваем такой простой пример как вычисление факториала хоть на жабе, хоть на си, хоть на любом другом языке!!!
Помогите, запускаю майнкрафт выдаёт ошибку: java.lang.StackOverflowError: null Кратко объясните что делать, как бревну: D
Тут два варианта.
1. Нехватка памяти. Нужно разрешить приложению потреблять больше памяти,
подробнее...
Ошибка компилятора Java, помогите.
пишет же тебе
java.lang.StackOverflowError
похоже что где-то цикл бесконечный сделал или
подробнее...
Java Факториал
Факториал 5000??? Я застрелился.. . 🙂
--
В массивы загоняй, по
подробнее...
Как усовершенствовать (ускорить) данный алгоритм по поиску чисел Армстронга)?
В десятичной системе существует всего 88 чисел Армстронга. Соответственно, быстрее всего их просто
подробнее...