Zrób to tak:
#include <iostream>
#include <time.h>
#include <cstdlib>
#define L_POWT 1000000
using namespace std;
clock_t start, stop;
double czas;
int ile;
long int wynikit=1;
long int silnia(int n)
{
if (n==0) return 1;
else return n*silnia(n-1);
}
int main()
{
cout<<"Podaj liczbę, której silnia ma być obliczona:";
cin>>ile;
start=clock();
for(int i=1; i <= L_POWT; i++){
silnia(ile);
}
stop=clock();
czas=stop - start;
cout<<"Ile czasu (rekurencja): "<<czas / CLOCKS_PER_SEC<<" s"<<endl;
start=clock();
for(int i=1;i<=L_POWT;i++)
{
for(int i=1;i<=ile;i++)
{
wynikit=wynikit*i;
}
}
stop=clock();
czas=stop - start;
cout<<"Ile czasu (iteracja): "<<czas / CLOCKS_PER_SEC<<" s"<<endl;
return 0;
}
Mi wyszło dla 10! metodą rekurencyjną 0,062 s, a interacyjną 0,047 s