Page 87 - 4656
P. 87
Алгоритми і структури даних. Лабораторний практикум.
}
Результатом будуть ті ж значення.
Факторіальна функція легко реалізується ітераційним
методом:
//Ітераційна реалізація факторіальної функції
public static int f(int n) {
int f = 1;
for (int i = 2; i <= n; i++) {
f *= i;
}
return f;
}
Заголовок функції буде ідентичним тому, що
використаний в прикладі рекурсивної факторіальної функції;
тільки тіло методу є різним. Це дозволяє використовувати
однаковий тестовий приклад для двох реалізацій. Вивід буде
однаковим.
Базова і рекурсивна частини .
Для коректної роботи кожна рекурсивна функція повинна
мати базову та рекурсивну частину. Базова - це та, що зупиняє
рекурсію. Рекурсивна - та, що буде викликати себе.
В Java метод, який реалізує факторіальну функцію, має
коментарі, якими позначено де знаходиться базова і рекурсивні
частини. Рекурсивна частина викликає метод передаючи менше
значення n. Тобто, починаючи з додатного числа 5, значення з
кожним успішним викликом буде 4, 3, 2, 1 та 0. Коли значення
дорівнює 0, викликається базова частина, яка зупиняє рекурсію і
починається ланцюгове повернення значень: 1, 1, 2, 6, 24 і в кінці
120.
85