Proc36. Описать функцию Fib($$N$$) целого типа, вычисляющую $$N$$-й элемент последовательности чисел Фибоначчи $$F_K$$, которая описывается следующими формулами: $$F_1 = 1,F_2 = 1, F_K = F_{K-2} + F_{K-1}, K = 3, 4, …$$ . Используя функцию Fib, найти пять чисел Фибоначчи с данными номерами $$N_1, N_2, …, N_5$$.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <stdio.h> int fib(int n){ int fk, fk1=1, fk2=1; int i; for (i=3;i<=n; ++i) { fk=fk2+fk1; fk2=fk1; fk1=fk; } return fk; } int main(void) { int i, n; for (i=1; i<=5; ++i){ printf("N:"); scanf("%i", &n); printf("fib: %i\n",fib(n)); } return 0; } |
Другие задачи из раздела Proc можно посмотреть здесь.
при n=1, n=2 выдаст неопределенный результат, нужно fk=1;