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
   82   83   84   85   86   87   88   89   90   91   92