Рекурсия, последовательность Фибоначчи - C (СИ)
Формулировка задачи:
Ребят, как сделать собственную функцию с рекурсией, которая считала бы К-ый член последовательности Фибоначчи ? Я ей 7, а она мне возвращает число 17
Пробовал делать тип long long, но не дало ничего это
еще такой вопрос, почему если я вывожу 46 член и т.д значения выводятся минусом?
fiba[0]=fiba[1]=1;
printf("Kakoi k chlen vuvesti1? ");
scanf("%i", &num_elem);
for(i=2; i<num_elem; ++i)
{
fiba[i]=fiba[i-2]+fiba[i-1];
}
printf("%i chlen = %i", num_elem, fiba[num_elem-1]);Решение задачи: «Рекурсия, последовательность Фибоначчи»
textual
Листинг программы
#include <iostream>
using namespace std;
long int fact(long int x)
{
if(x==0)
return 0;
if(x==1)
return 1;
else
return x*fact(x-1);
}
long int fibo(long int x)
{
if(x==0)
return 0;
if(x==1)
return 1;
else
return fibo(x-2)+fibo(x-1);
}
void main()
{
cout<<fibo(30)<<endl;
cout<<fact(30)<<endl;
system("pause");
}
Объяснение кода листинга программы
В этом коде реализована функция fact(x), которая вычисляет факториал числа x. Также есть функция fibo(x), которая вычисляет число Фибоначчи для данного числа x. В функции main() вызываются эти функции для вычисления факториала и числа Фибоначчи для x=30, результат выводится на экран.