Witam napisałem algorytm potęgowania liczb:
unsigned long long int potega(long long int liczba, long long int wykładnik)
{
if(liczba==0)
{
return 0;
}
if(wykładnik==0)
{
return 1;
}
if(wykładnik%2==0)
{
return (liczba*potega(liczba, (wykładnik/2)-1))*(liczba*potega(liczba, (wykładnik/2)-1));
}
return liczba*potega(liczba,wykładnik-1);
}
Jakiego typu danych użyć aby móc spotęgować 2^1000, o ile mniejsza jest złożoność obliczeniowa tego algorytmu od:
unsigned long long int potęga(long long int liczba, long long int wykładnik)
{
if(wykładnik==0)
{
return 1;
}
else if(liczba==1)
{
return 1;
}
else if(liczba==0)
{
return 0;
}
return liczba*potęga(liczba, wykładnik-1);
}