Понеже никой не обясни за еденичния факториел
1! = 1
2! = 1 Х 2
3! = 1 Х 2 Х 3
4! = 1 Х 2 Х 3 Х 4
Накратко - съкратен начин да запишеш умножението на 1 по 2 по 3 по ... до N.
За рекурсията - както беше описано по-горе рекурсивна е тази функция, която сама вика себе си...
Може от пръв поглед да не личи, но рекурсията е много мощно средство - с нея много лесно се пишат алгоритмни за обхождане на графи (разбирай лабиринти, обхождане на шахматна дъска с определена фигура и т.н.) при това с така наречения бектрекинг (т.е. тръгва да обхожда, стига до здънена улица, връща се не предишната пресечка, пробва нова посока, стига до задънена улица, пак се връща...и така докато намери път или всички пътища или най-късия от тях примерно...).
Смятането на факториел с рекурсивна функция, не е кой знае какво, но демонстрира как да се използва рекурсията (но не демонстрира пълната и мощ).
Хайде да напишем фунция за N!
Основите елементи на рекурсивната функция са: 1-во трябва да и кажеш какво да прави в еденичния случай (при нас ако N = 1 и функцията е 1) 2-ро да определиш каква е функцията, ако вече имаме изчислена функцията за N-1 стъпки (при нас Ф(N) = Ф (N-1) Х N).
Ето как изглежда рекурсивна функция за изчисляване на N!
функция Ф1(статичен параметър N)
Ако N = 1 тогава Ф1 = 1
иначе Ф1 = Ф1(N-1) * N
Ако извикаме примерно Ф1(4) ще ни върне 24 (т.е. ако попълним цяло число ще смята факториел от него...ако не е цяло ще зацикли и ще изчерпа маметта
)
В някои езици нещата ще изглеждат различно.
Обратния (т.е. нормалния ) начин за решаване на такива задачи (примерно с цикъл), се нарича итеративен.
Накратко - щом аз съм го разбрал, значи е нещо елементарно...