2. Задание на лабораторную работу Написать программы, реализующие рекурсивный и итерационный методы решения задач. Сравнить время выполнения программ. Вывести на экран результат вычислений, время выполнения программы и глубину рекурсии или количество итераций. Программа реализуется на языках C или Pascal в соответствии с указанием преподавателя. Помните, что в языке Pascal подпрограммы бывают двух видов – функции и процедуры.
3. Язык программирования C Рекурсивная функция – это функция, в определении которой есть обращение к себе самой. Пример . Допустим, нужно вычислить n ! ( факториал числа n ). Значение n ! можно представить как произведение n на факториал ( n -1) : n ! = n *( n -1)! ( n -1)! = ( n -1)*( n -2)! …
4. Пример /* Рекурсивная функция вычисления n ! */ float fact ( int n ) { if ( n <0) { puts (“Недопустимый аргумент функции fact ”); exit (1); /* завершение выполнения программы */ } if ( n ==1 || n ==0) return 1; return n * fact ( n -1); }
5. Пример вызова этой функции: int k; scanf (“%d”, &k); printf (“%d! = %.0f”, k, fact(k));