Форум » Рекурсивные процедуры и функции » Помогите решить № 11. » Ответить

Помогите решить № 11.

Aksenova: Запишите подряд без пробелов и разделителей все числа, которые будут напечатаны на экране при выполнении вызова F(9). Числа должны быть записаны в том же порядке, в котором они выводятся на экран. procedure F(n: integer); begin if n > 0 then begin F(n – 3); F(n div 3); write(n) end end; У меня получилось 9631131, но это не верно.

Ответов - 2

OlgaChe1: F(9)=F(6), F(3), 9 F(6)=F(3), F(2), 6 F(3)=F(0), F(1), 3 F(2)=F(-1), F(0), 2 F(1)=F(-2), F(0), 1 Все F(n<=0) ничего не выводят на экран. Остальные подставляем снизу вверх: F(1)=1 F(2)= 2 F(3) = 13 F(6)= 1326 F(9)=1326139

Aksenova: Спасибо!



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