Форум » Рекурсивные процедуры и функции » Рекурсия, задание 11. » Ответить

Рекурсия, задание 11.

Anet: https://postimg.cc/2VR3fXNM Вечер добрый. Как решать такое задание?

Ответов - 1

polyakovss: Здравствуйте! Как решать такие задачи очень подробно изложено в ege11.doc. Ниже записана рекурсивная процедура: procedure F(n:integer); begin if n > 1 then begin write(n - 1); F(n-3); F(n-2); end; end; Что будет напечатано на экране при выполнении вызова F(8)? Интересующее Вас задание решается так: 1) F(8) = 7 F(5) F(6) 2) F(6) = 5 F(3) F(4) 3) F(5) = 4 F(2) F(3) 4) F(4) = 3 F(1) F(2) 5) F(3) = 2 F(0) F(1) 6) F(2) = 1 F(-1) F(0) Учитывая, что процедура осуществляет вывод на экран только при n > 1, получаем (теперь идем снизу вверх): 6) F(2) = 1 F(-1) F(0) = 1 5) F(3) = 2 F(0) F(1) = 2 4) F(4) = 3 F(1) F(2) = 31 3) F(5) = 4 F(2) F(3) = 412 2) F(6) = 5 F(3) F(4) = 5231 1) F(8) = 7 F(5) F(6) = 74125231 Ответ: 74125231.



полная версия страницы