Sprawdź poniższy kod.
Zamiast Twoich wywołań funkcji silni wpisałem funkcje wstrzymujące działanie programu na pół sekundy. Jeżeli będzie Ci wypisywało czas 0.5, to znaczy, że dobrze napisałeś obliczanie czasu. W moim przypadku jest wszystko okej.
#include <iostream>
#include <time.h>
#include <cstdlib>
#include <Windows.h>
using namespace std;
clock_t start, stop;
double czas;
int main()
{
start = clock();
Sleep( 500 );
stop = clock();
czas = (double)(stop - start) / CLOCKS_PER_SEC;
cout << "Obliczanie rekurencyjnie zajmie: " << czas << endl;
start = clock();
Sleep( 500 );
stop = clock();
czas = (double)(stop - start) / CLOCKS_PER_SEC;
cout << "Obliczanie iteracyjnie zajmie: " << czas << endl;
return 0;
}
Przypomnę, że w kodzie zamieniłem tylko wywołania funkcji silni na funkcję "czekające pół sekundy".