Вы находитесь на странице: 1из 1

Algoritmul ar putea fi :

Pe biţi
#include <iostream>
#include <iostream>
using namespace std;
long p=1,x;
using namespace std;
int k; long p=1,x;
int main() int main()
{ { int i,k;
//k=6; //x=2; k=5;
//x=2;
cin>>k>>x;
cin>>k>>x;
for(i=0;(1<<i)<=k;++i)
while(k)
{if(k%2){p=p*x;}
{if ((1&k) p=p*x;
x=x*x; x=x*x;
k=k/2; }
} cout<<p;
cout<<p; return 0;
return 0;
}
}

recursiv
#include <iostream>
using namespace std;
// a^b calcul exponential in timp logaritmic
long ab(long a,long b)
{ if (b==0) return 1;
else{ if (b%2==0) return ab(a*a,b/2);
else return ab(a,b-1)*a;
}
}
int main()
{ long a,b,p;
cin>>a>>b;
p=ab(a,b);
cout<<endl<<p;
return 0; }

Вам также может понравиться