Mam problem z liczeniem czasu, program na samym początku dla rekurencji oblicza w normalny sposób czas natomiast dla iteracji pokazuje zazwyczaj samo 0 lub 0.001(dużo zer)208. Nie mogę dojść w czym problem :(
#include <iostream>
#include <ctime>
using namespace std;
long int potegowanie (int potega, int wykladnik);
long int potegowanie_i(int p, int w);
int main ()
{
long int rezultat;
int a,b;
double czas,start,stop;
start = clock();
cout.precision(20);
cout << "Podaj podstawe i wykladnik rozdzielone spacja: ";
cin >> a >> b;
rezultat = potegowanie(a,b);
cout << rezultat << endl;
stop = clock();
czas = (stop-start)/CLOCKS_PER_SEC;
cout << "Czas rekurencyjnie: "<<czas << " s"<< endl;
cin.sync();
cin.clear();
start = clock();
rezultat = potegowanie_i(a,b);
cout << rezultat <<endl;
stop = clock();
czas = (stop-start)/CLOCKS_PER_SEC;
cout << "Czas iteracyjnie: "<<czas << " s"<< endl;
return 0;
}
long int potegowanie (int potega, int wykladnik)
{
return (wykladnik==0) ? 1 : potega*(potegowanie(potega,wykladnik-1));
}
long int potegowanie_i(int p, int w)
{
long int wynik;
wynik =1;
while (w>0)
{
wynik *= p;
w--;
}
return wynik;
}