https://repl.it/@IlyaSiganov/iterfib#main.c

Написать функцию, возвращающую $N$-ый член последовательности Фибоначчи, без использования рекурсии. Числа Фибоначчи образуются по правилу:

$$ a_1 = 1, \\ a_2 = 1, \\ a_{i+1}=a_i + a_{i-1} $$

#include "test.h" // библиотека для тестирования

// fib выдает N-ый член последовательности Фибоначчи.
// Правило последовательности:
// fib(0) == 0
// fib(1) == 1
// fib(2) == 1
// fib(n+1) = fib(n) + fib(n-1)
int fib(int n) {
  // Напиши меня!
  // рекурсию использовать нельзя!
  // В этом задании используйте циклы
  return n;
}

int main(void) {
  ASSERT_INT(0, ==, fib(0));
  ASSERT_INT(1, ==, fib(1));
  ASSERT_INT(1, ==, fib(2));
  ASSERT_INT(2, ==, fib(3));
  ASSERT_INT(3, ==, fib(4));
  ASSERT_INT(55, ==, fib(10));
  ASSERT_INT(89, ==, fib(11));
  ASSERT_INT(987, ==, fib(16));

  return 0;
}