快速幂目的:用更短的时间求出a^b(尤其是b特别大的时候)
快速幂实现过程:
1、当指数是偶数时,我们可以让指数除以2,底数乘以底数a^32=a^2*16=(a*a)^16
2、当指数是奇数时,我们可以将指数变为奇数a^33 = a^32 * a
#include<iostream>
using namespace std;
long long fpow(long long a,long long b){
long long ans = 1;
while(b){
if(b & 1)ans *= a;//如果b是奇数
b >>= 1;//就是b = b / 2;
a *= a;
}
return ans;
}
int main(){
long long n,m;
cin >> n >> m;
cout<<fpow(n,m)<<endl;
}