Автор | Сообщение |
|
Отправлено: 04.03.19 16:20. Заголовок: задание 11 пример 128 рекурсия
Поясните пожалуйста, или я не так решаю, или в условии ошибка. Задание 11 пример 128 (Л.А. Тумарина) Определите, что выведет на экран программа при вызове F(7). procedure F(n: integer); begin n:=n+1; if n > 3 then begin write(n); F(n-3); F(n div 3) end else write(n); end; составляем рекурсионную формулу при n >3 f(n)= (n+1) f((n+1)-3) f((n+1)div3) при n<=3 f(n)=(n+1) при вызове f(7) получаем: f(7)=8 f(5) f(2)=86433 f(5)=6 f(3) f(2)= 643 Ответ 8642233, указанный в ответах получается, если в условии будет указано n>=3 или n>2 то есть формула будет выглядеть как: при n >=3 f(n)= (n+1) f((n+1)-3) f((n+1)div3) при n<3 f(n)=(n+1) тогда при вызове f(7) получаем: f(7)=8 f(5) f(2) = 8642233 f(5)=6 f(3) f(2) = 64223 f(3)=4 f(1) f(1) = 422 Извините, отправила письмо, не сразу сообразила, про форум С уважением, Наталья
|
|
|
Ответов - 1
[только новые]
|
|
|
| Администратор
|
Сообщение: 1825
|
|
Отправлено: 04.03.19 21:05. Заголовок: Константинова пишет:..
Константинова пишет: цитата: | Поясните пожалуйста, или я не так решаю, или в условии ошибка. |
|
Думаю, что вам будет более интересно самой ответить на свой вопрос. Наберите программу и пройдите её в пошаговом режиме.
|
|
|