Алгоритм вычисления значения функции F(n), где n — целое неотрицательное число, задан следующими соотношениями:
F(0) = 0;
Назовите минимальное значение n, для которого F(n) = 12.
Приведём программу на Паскале, решающую данную задачу:
var n: longint;
i: integer;
function F(n: longint): longint;
begin
if n = 0
then F := 0
else if (((n mod 2) = 0) and (n > 0))
then F := F(n div 2)
else if ((n mod 2) > 0)
then F := 1 + F(n - 1);
end;
begin
i := 1;
while F(i) <> 12 do i := i + 1;
writeln(i);
end.
Результат работы программы — 4095.
Ответ: 4095.
Приведём другое решение на языке Python.
def F(n):
if n == 0:
return 0
if n % 2 == 0 and n > 0:
return F(n // 2)
if n % 2 != 0:
return 1 + F(n - 1)
i = 0
while F(i) != 12:
i += 1
print(i)

