Определите, сколько символов * выведет эта процедура при вызове $ F(127)$:
Python:
def F(n):
print('*')
if n > 1:
F(n-2)
F(n // 2)
print('*')
print('*')
C++:
void F(int n) {
cout << '*';
if (n > 1) {
F(n-2);
F(n / 2);
cout << '*';
}
cout << '*';
}
Pascal:
procedure F(n:integer);
begin
write('*');
if n > 1 then begin
F(n-2);
F(n div 2);
write('*');
end;
write('*');
end;
Решение:
Решение на Python:
def F(n) :
k = 2
if n > 1:
k += F(n-2) + F(n//2) + 1
return k
print(F(127))
Ответ: 127547
Ответ:
127547