Esponenziale veloce

/*[Esponenziale veloce]. Scrivere una funzione ricorsiva che calcoli
l’esponenziale sfruttando le seguenti uguaglianze:
m2n = (m × m)n
m2n+1 = m × m2n
m0 = 1*/

/*espotenza veloce*/

#include

int esp(int m, int n);

int main()
{
int m=0;
int n=0;
scanf("%d",&m);
scanf("%d",&n);
printf("%d", esp(m,n));
return 0;
}

int esp(int m,int n)
{
if (m==0) return 0;
if (n==0) return 1;
else
if (n%2 == 0)
{
return (m*(m*(esp(m,(n/2)-1))));
}
if (n%2 != 0)
{
return (m*(esp(m,n-1)));
}
}

Commenti