Ниже записаны две рекурсивные функции (процедуры): F и G. Какова сумма чисел, напечатанных на экране при выполнении вызова F(19)?
Паскаль:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
procedure F(n:integer);forward;procedure G(n:integer);forward;procedure F(n:integer);beginwriteln(n mod2);if n mod2=0then F(n div2)else G((n -1)div2);end;procedure G(n:integer);beginwriteln(n);if n > 0then F(n);end;
procedure F(n: integer); forward;
procedure G(n: integer); forward;
procedure F(n: integer);
begin
writeln(n mod 2);
if n mod 2 = 0 then F(n div 2)
else G((n - 1) div 2);
end;
procedure G(n: integer);
begin
writeln (n);
if n > 0 then F(n);
end;
Бейсик:
DECLARESUB F(n)
DECLARESUB G(n)
SUB F(n)
PRINT n MOD 2
IF n MOD 2 = 0 THEN
F(n \ 2)
ELSE
G ((n - 1) \ 2)
ENDIFENDSUB
SUBG(n)
PRINT n
IF n > 0 THEN
F(n)
ENDIFENDSUB
DECLARE SUB F(n)
DECLARE SUB G(n)
SUB F(n)
PRINT n MOD 2
IF n MOD 2 = 0 THEN
F(n \ 2)
ELSE
G ((n - 1) \ 2)
END IF
END SUB
SUBG(n)
PRINT n
IF n > 0 THEN
F(n)
END IF
END SUB
Все права защищены. Использование любых материалов сайта возможно только с разрешения правообладателя. По вопросам размещения рекламы на сайте - обращайтесь: mayersvetlana @ yandex.ru