#include<iostream>
using namespace std;
/*
*temp为基数,n为底数,m为指数,基数初始值为1,当指数最后一位为1是,基数乘上指数,指数减
*1后,指数的最后一会为0,然后把底数进行平方指数右移一位,指数因为最后指数会变成1,所以把
*最后的底数和基数成在一起就是结果
*/
int quick_power (int n,int m){
long long temp = 1;
while (m) {
if (m & 1) {//如果当前指数为奇数
temp = (temp * n);
m--;
}
m >>= 2;//位运算右移,位运算相比10进制运算要快跟多
n = n * n;
}
return temp;
}
int main(){
int n,m;
while(cin>>n>>m){
int ans = quick_power(n,m);
cout<<ans<<endl;
}
return 0;
}
ACM算法-快速幂
最新推荐文章于 2024-08-17 21:27:58 发布