Сколько символов «звездочка» будет напечатано на экране при выполнении вызова F(5)?
Дан рекурсивный алгоритм:
| Паскаль | Cи | Python | ||
| procedure F(n: integer); begin writeln(‘*’); if n > 0 then begin F(n-2); F(n div 2); F(n div 2); end end; |
void F(int n) { printf(″*″); if (n > 0) { F(n-2); F(n / 2); F(n / 2); } } |
|
Сколько символов «звездочка» будет напечатано на экране при выполнении вызова F(5)?
Ответ:
Решение:
F5 (33+1=34) => F3 (13), F2 (10), F2 (10)
F3 (12+1) => F1 (4), F1 (4), F1 (4)
F2 (9+1) => F0 (1), F1 (4), F1 (4)
F1 (3+1) => F-1 (1), F0 (1), F0 (1)
Ответ: 34
