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;
}