Числа Фибоначчи на языке C
Ряд Фибоначчи представляет собой последовательность натуральных чисел, в котором каждый следующий элемент равен сумме двух предыдущих.
В зависимости от условия задачи может требоваться
- вывести N элементов ряда,
- найти значение N-го элемента ряда,
- вывести элементы ряда до определенного предела (значение последнего элемента не должно превышать предела),
- найти количество элементов ряда Фибоначчи до заданного числового предела.
Поскольку алгоритмы решения для задач 1. и 2. схожи между собой, также как для 3. и 4., ниже приводится два решения на языке программирования Си. Первое выводит ряд из заданного количества элементов, значение последнего - ответ на вторую задачу. Второе решение выводит ряд до указанного предела и одновременно считает количество элементов в нем.
Вывод ряда Фибоначчи из N элементов:
#include <stdio.h> int main () { unsigned a = 1, b = 1, c; unsigned char n, i; scanf("%hhu", &n); printf("%u %u", a, b); for (i=2; i < n; i++) { c = a; a = b; b = c + a; printf(" %u", b); } printf("\n"); }
10 1 1 2 3 5 8 13 21 34 55
Вывод чисел Фибоначчи до заданного предела:
#include <stdio.h> int main () { unsigned a = 1, b = 1, c; unsigned char n = 2; unsigned long limit; scanf("%lu", &limit); printf("%u %u", a, b); while (a + b < limit) { c = a; a = b; b = c + a; printf(" %u", b); n++; } printf("\nКоличество элементов в ряду: %hhu\n", n); }
800 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 Количество элементов в ряду: 15