вычисления НОД, основанную на соотношении НОД(n, m) = НОД(m,
r
), где r – остаток от деления n на m (см. задачу 89). Чем эта программа
хуже нерекурсивной программы вычисления НОД(
n, m)?
456. Числа Фибоначчи u
0
, u
1
, u
2
, ... определяются следующим
образом: u
0
=0, u
1
=1, u
n
=u
n-1
+u
n-2
(n=2, 3, ... ) (см. задачу 144). Написать
программу вычисления
u
n
для данного неотрицательного целого n,
включающую рекурсивную процедуру, которая основана на
непосредственном использовании соотношения
u
n
=u
n-1
+u
n-2
. Доказать
по индукции, что при вычислении
u
n
(n=2, 3, ...) по этой программе
придется выполнить
u
n
-1 сложение чисел Фибоначчи. Итак, для
нерекурсивной программы количество сложений чисел Фибоначчи при
вычислении
u
n
для n=0, 1, ..., 10 есть соответственно 0, 0, 1, 2, 3, 4, 5, 6,
7, 8, а для рекурсивной – 0, 0, 1, 2, 4, 7, 12, 20, 30, 54. Ввиду последнего
обстоятельства никогда не следует пользоваться такого рода