/*********************************************************
TD d'Algorithmique IN202
ENSTA
Mardi 7 Novembre 2000
Exercice 5 : Exponentiation binaire
Guillaume Poupard
*********************************************************/
#include <stdio.h>
int puiss1(int a, int b)
{
int p=1;
while (b>0)
{
if ((b%2)==1)
p=p*a;
a=a*a;
b=b/2;
}
return p;
}
int puiss2(int a, int b)
{
if (b==0) return 1;
if ((b%2)==1)
return a*puiss2(a*a,b/2);
else
return puiss2(a*a,b/2);
}
int main(int argc, char * argv[])
{
int a=atoi(argv[1]);
int b=atoi(argv[2]);
printf("%d^%d=%d ou %d\n",a,b,puiss1(a,b),puiss2(a,b));
}
syntax highlighted by Code2HTML, v. 0.9.1