Witajcie koledzy!
Szukałem ale nie znalazłem - temu zwracam się o pomoc do Was!
O ile część problemów sam rozwiązałem lub wygooglowałem o tyle z jednym problemem nie mogę sobie poradzić, mianowicie z czasem.
Coś widać robię źle, że nie mierzy mi dobrze czasu, pomożecie?
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
clock_t start1, stop1;
clock_t start2, stop2;
double czas1;
double czas2;
int ile;
long double silnia1(int n)
{
if (n==0) return 1;
else return n*silnia1(n-1);
}
int main()
{
long double silnia2=1;
cout << "Z ilu wyliczyc silnie: ";
cin >> ile;
if (ile<0) cout<<"Nie ma silni z liczb ujemnych!!"<<endl;
else
{
start1 = clock();
cout << "Rekurencja: " << silnia1(ile) << endl;
stop1 = clock();
czas1 = (double)(stop1-start1) / CLOCKS_PER_SEC;
cout <<"Czas obliczen (Rekurencja): " << czas1 << " sekund" << endl;
start2 = clock();
for(int i=1; i<=ile; i++)
{
silnia2*=i;
}
stop2 = clock();
czas2 = (double)(stop2-start2) / CLOCKS_PER_SEC;
cout << "Iteracja: " << silnia2 << endl;
cout <<"Czas obliczen (Iteracja): " << czas2 << " sekund" << endl;
};
return 0;
}