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

11 задание 115 номер не сходится с ответом

АннаФр: 115) Определите, что выведет на экран программа при вызове F(9). procedure F(n: integer); begin if n > 0 then begin F(n – 4); F(n div 2); write(n) end end; У меня получилось 012401201, в ответе 11251249

Ответов - 2

Поляков: АннаФр пишет: У меня получилось 012401201, в ответе 11251249 Проверьте по программе.

polyakovss: Здравствуйте! F(9)=F(5)F(4)9 F(5)=F(1)F(2)5 F(4)=F(0)F(2)4 F(2)=F(-2)F(1)2 F(1)=F(-3)F(0)1 Учтем, что процедура F(n) "работает" при n > 0. Значит, F(0), F(-3), F(-2) ничего не делают. Их можно вычеркнуть. Теперь идем в обратном порядке: F(1)=F(-3)F(0)1=1 F(2)=F(-2)F(1)2 = F(1)2=1 2=12 F(4)=F(0)F(2)4=F(2)4=12 4=124 F(5)=F(1)F(2)5=1 12 5=1125 F(9)=F(5)F(4)9=1125 124 9=11251249 F(9)=11251249



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