java рекурсия



рекурсия java

Автор Колобок Зайцев задал вопрос в разделе Другие языки и технологии

Рекурсия(Java2): в чём её смысл и как ей пользоваться? и получил лучший ответ

Ответ от Krab Вark[гуру]
Рекурсия - неявный цикл прямым или косвенным вызовом функцией самой себя. В функции будет условный оператор или выражение с проверкой, надо ли для дальнейшего вычисления вызвать функцию снова или можно возвратить результат.
"У попа была собака... " - классический пример, только надо вставить условие завершения, например, когда поп не мог уже писать более мелким шрифтом :))
Например, в Java рекурсивная функция вычисления факториала может выглядеть так:
public static int fact(int x){ if(x != 1)return x*fact(x-1); else return 1; }
Смысл рекурсии в том, что многие алгоритмы (не все, конечно) через рекурсивные функции записываются гораздо короче и проще, чем без использования рекурсии.

Ответ от Александр[гуру]
смысл использования рекурсивных программ в краткости кода.
но на практике краткость кода не всегда означает оптимальность и устойчивость работы программы.. .
одним из примеров "нехорошести" рекурсивных вычислений будет выпадение программы в осадок по причине переполнения стека.... поэтому, делая выбор в пользу рекурсий, всегда надо учитывать природу проблемы для решения которой пишется программа...

Ответ от Sm[гуру]
> Пояснение нужно конкретно по Java, и не покаким другим языкам.
Рекурсия в программировании, дитятко, - понятие языконезависимое.

Ответ от Ляпин Евгений[гуру]
рекурсия - термин из программирования и ко всем языкам он относится одинаково!! ! так что читаем мат. часть и рассматриваем такой простой пример как вычисление факториала хоть на жабе, хоть на си, хоть на любом другом языке!!!

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Рекурсия(Java2): в чём её смысл и как ей пользоваться?
спросили в Рекурсия
Помогите, запускаю майнкрафт выдаёт ошибку: java.lang.StackOverflowError: null Кратко объясните что делать, как бревну: D
Тут два варианта.
1. Нехватка памяти. Нужно разрешить приложению потреблять больше памяти,
подробнее...
спросили в Рекурсия
Ошибка компилятора Java, помогите.
пишет же тебе
java.lang.StackOverflowError
похоже что где-то цикл бесконечный сделал или
подробнее...
спросили в Рекурсия
Java Факториал
Факториал 5000??? Я застрелился.. . 🙂

--
В массивы загоняй, по
подробнее...

Как усовершенствовать (ускорить) данный алгоритм по поиску чисел Армстронга)?
В десятичной системе существует всего 88 чисел Армстронга. Соответственно, быстрее всего их просто
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*