Есть следующие функция:
function f_a(const n : integer): longint;
begin
if n <= 1 then f_a:=1 else
f_a:=n - f_a(f_a(n-1));
end; { f_a }
Необходимо переписать функцию, избавившись от рекурсии.
Для n>=0 получаем:
Код
1 1 2 3 3 4 4 5 6 6 7 8 8 9 9 10 11 11 12 12 13 14 14 15 16 16 17 17 18 19 19 20 21 21 22 22 23 24 24 25...
То есть мы имеем цифры идущие парами, но через 3 или 5 хода встречается "цифра-одиночка". Что с этим делать - не знаю. Буду рад помощи.