#include<bits/stdc++.h>
using namespace std;
#define ll long long
ll Quick_pow(ll a, ll b)
{
ll res = 1;
while (b)
{
if (b % 2 == 1)//b&1==1
res *= a;
a = a * a;
b >>= 1;
}
return res;
}
signed main()
{
ll a, b;
while (cin >> a >> b)
{
cout << Quick_pow(a, b) << endl;
}
return 0;
}
此方法适合当指数很大时使用,这样可以节省运行时间。
时间复杂度为o(log2(n))