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

