Witam, mam taki krótki kod i zastanawia mnie czemu program liczy silnie z większej liczby szybciej niż z mniejszej ?
public class silnia {
private static long start_silniaCzesc;
private static long start_silnia1;
static int silnie( int liczba)
{
if ( liczba == 0)
return 1;
else
return liczba*silnie(liczba - 1);
}
public static void main(String[] args)
{
start_silniaCzesc = System.nanoTime();
int temp1 = silnie(2);
System.out.println("Time ( rekurencyjnie) : " +(System.nanoTime() - start_silniaCzesc)*0.000001+ "ms");
System.out.println("Wynik: " + temp1);
start_silnia1 = System.nanoTime();
int temp= silnie(12);
System.out.println("Time ( rekurencyjnie) : " +(System.nanoTime() - start_silnia1)*0.000001+ "ms");
System.out.println("Wynik: " + temp);
}
}
Mógłby mi ktoś pokazać gdzie tu jest błąd ? silnia (12) oblicza się rząd wielkości szybciej niż silnia(2)..