Cześć,
Mam problem z kodem. Mam za zadanie wyliczyć czas zapisu przy pomocy iteracji i rekurencji. Przy iteracji normalnie działa, ale przy rekurencji wywala mi program. Mógłby ktoś naprowadzić mnie dlaczego dzieje się tak a nie inaczej?
#include <iostream>
#include <time.h>
using namespace std;
long int fib (int n)
{
if (n == 1 || n == 2) return 1;
else return fib(n - 1) + fib(n - 2);
}
clock_t start, stop;
double czas;
int ile;
int main()
{
cout << "Czas zapisu iteracyjnie" << endl;
cout << "Ile liczb ciagu Fibonacciego chcesz obliczyc: ";
cin >> ile;
//poczatek liczenia fib iteracyjnie
int *tablica = new int [ile];
tablica[0] = tablica[1] = 1;
start = clock();
for (int i = 2; i < ile; i++)
tablica[i] = tablica[i - 1] + tablica[i - 2];
stop = clock();
czas = (double)(stop - start) / CLOCKS_PER_SEC;
cout << "Czas iteracyjnie wynosi: " << czas << endl;
delete [] tablica;
cout << "Czas zapisu rekurencyjnie" << endl;
start = clock();
fib(ile);
stop = clock();
czas = (double)(stop - start) / CLOCKS_PER_SEC;
cout << "Czas rekurencyjnie wynosi: " << czas;
return 0;
}