2.1Kпросмотров
92.5%от подписчиков
19 сентября 2025 г.
Score: 2.3K
int fn(int v) { if (v == 1 || v == 0) { return 1; } if (v % 2 == 0) { return fn(v / 2) + 2; } return fn(v - 1) + 3;
}
fn(7)?
Решение: Вычисление fn(7): v = 7 (нечётное):
return fn(6) + 3 v = 6 (чётное):
return fn(3) + 2 v = 3 (нечётное):
return fn(2) + 3 v = 2 (чётное):
return fn(1) + 2 v = 1:
return 1 Теперь поднимаемся обратно по цепочке вызовов: Шаг 5: fn(1) = 1 Шаг 4: fn(2) = fn(1) + 2 = 1 + 2 = 3 Шаг 3: fn(3) = fn(2) + 3 = 3 + 3 = 6 Шаг 2: fn(6) = fn(3) + 2 = 6 + 2 = 8 Шаг 1: fn(7) = fn(6) + 3 = 8 + 3 = 11 Ответ
fn(7) = 11