Функция, какво рекурсия

Рекурсия нарича това строителство, при който функцията нарича себе си. Разграничаване между пряка и непряка рекурсия. Функцията се нарича прав рекурсивни, ако той съдържа в себе си предизвикателство тялото му. Ако една функция изисква друга функция, която от своя страна води до първо място, такава функция се нарича рекурсивно косвено.

Помислете класическите примери за рекурсия - изпълнение на изчисление факториел на работа и степенуване. Имайте предвид, че тези примери са класически, само защото на тяхно удобство, за да обясни понятието рекурсия, но те не се ползват при изпълнението на програмите в сравнение с повтарящ метод за решаване на тези проблеми.

Този пример се базира на факта, че е еквивалентно на х у х * х (у-1). Това изчисление задача код е разделен на 2 изчисление април 2 * 2³. След 2 * 2³ е разделен на 2 * 2² и така, докато ставката е нулева.

Повтарящ версия на този пример е, както следва:

В допълнение, този код е много по-лесно да се разбере, че също така е по-ефективен, тъй като проходът цикъл струва "по-малко" извикване на функция.

За отрицателен аргумент функция връща нулева стойност, защото факториела на отрицателно число не съществува в определението. За функцията за зануляване, връща стойност от 1, защото 0! = 1. В други случаи, същата функция се извиква с намалена стойност на параметъра е 1, тогава резултатът се умножава по текущата стойност параметър. . Това означава, че има изчисляването на продукт:

Последователността на рекурсивни повиквания прекъснат само от факта на повикване (0). което води до последната стойност 1 в продукта, тъй като последната експресията от който се нарича функция, има форма 1 * факта (1 - 1).

Повтарящ факториел може да се изчисли, както следва:

Ако не намерите това, което търсите, Ви препоръчваме да използвате лентата за търсене: