Форум » Циклы и ветвления » В6 » Ответить

В6

Верда: 42) Дан рекурсивный алгоритм: procedure F(n: integer); begin if n > 2 then begin writeln('*'); F(n-2); F(n-1); F(n div 2); end writeln('*'); end; Сколько символов "звездочка" будет напечатано на экране при выполнении вызова F(6)? В ответах написано 33, у нас получается 25 Получается формула G(n) = 1 + G(n-2) +G(n-1)+ G(n div 2) при n > 2, G(n) = 1 при всех n <= 2?

Ответов - 2

Поляков: Наберите программу и пройдите в пошаговом режиме, узнаете много интересного. Формула неверна, вы забыли ту звездочку, которая печатается внутри условного оператора. Если я скажу решение, будет неинтересно. :-)

oval: Поляков пишет: Наберите программу и пройдите в пошаговом режиме, узнаете много интересного а еще можно изменить writeln('*'); на writeln(n);



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