#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
double czas, czas1;
long double fib(int n)
{
clock_t start=clock();
if(n==1 || n==2) return 1;
else return fib(n-1)+fib(n-2);
clock_t stop=clock();
czas=(double)(stop-start)/CLOCKS_PER_SEC;
}
long double fib1(int m)
{
double long a=1,b=1,c=0;
clock_t start=clock();
for(int i=0; i<m; i++)
{
c=a+b;
a=b;
b=c;
}
clock_t stop=clock();
czas1=(double)(stop-start)/CLOCKS_PER_SEC;
}
int main()
{
int n, m ;
cout<<"Podaj ktora liczbe ciagu policzyc rekurencyjnie: ";
cin>>n;
cout<<fib(n)<<endl;
cout<<"Ciag rekurencyjnie: "<<czas<<endl;
cout<<"Podaj ktora liczbe ciagu policzyc iteracyjnie : ";
cin>>m;
cout<<fib1(m)<<endl;
cout<<"Ciag iteracyjnie: "<<czas1<<endl;
return 0;
}
Witam!
Próbowałam napisać własne funkcje, ktorę będą liczyć ciąg fibonacciego rekurencyjnie i iteracyjnie, ale w podejsciu iteracyjnym funkcja zwraca mi wartość nan. Mogłam namieszać przy zmiennych ale nie wiem co poprawiać. Prosze także o sprawdzenie czy poprawinie użyłam funkcji mierzenia czasu oraz czy moje funkcje są ogólnie dobrze napisane :)
Z góry bardzo dziękuje za pomoc