Найти N первых чисел Фибоначчи для произвольно большого N - C (СИ)
Формулировка задачи:
#include<stdio.h>
#include<conio.h>
int main()
{
printf ("Kolichestvo elementov: ");
int n;
scanf("%d", &n);
int i=0;
int a[i];
for ( int i=0; i<n; i++)
{if (i=0)
a[i]=0;
else
if (i=1)
a[i]=1;
else
a[i]=a[i-2]+a[i-1];
printf("%d\n", a[i]);
}
getch();
}Решение задачи: «Найти N первых чисел Фибоначчи для произвольно большого N»
int F(int n)
{
int f, f1(1), f2(1), m(0);
while(m < n - 1)
{
f = f1 + f2;
f1 = f2;
f2 = f;
++m;
}
return f1;
}
Объяснение кода листинга программы
В данном коде функция F(int n) принимает целочисленный аргумент n и возвращает N-ное число Фибоначчи. Внутри функции объявлены следующие переменные: f, f1, f2, m. Переменная f инициализируется значением f1 + f2, после чего присваивается значение f2, затем значение f1. Переменная m инициализируется значением 0 и увеличивается на 1 на каждой итерации цикла. Цикл while выполняется до тех пор, пока значение переменной m меньше n-1. Внутри цикла происходит вычисление значения переменной f путем сложения f1 и f2, после чего значение f1 присваивается значение f2, а значение f2 присваивается значение f1. Значение переменной m увеличивается на 1 на каждой итерации цикла. После окончания цикла возвращается значение переменной f1.