/*[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)));
}
}
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
Posta un commento