def f(n):
    if not isinstance(n, int):
        raise TypeError('Input must be an int')
if n < 0:
    raise ValueError('Input must be non-negative')
if n == 0:
    return f0
i, fi_1, fi = 1, f0, f1
while i < n:
    i += 1
fi_1, fi = fi, g(fi_1, fi, n)
return fi
Преобразование функции с двумя рекурсивными вызовами в итеративную функцию