C++代码:
/*
* @author Hahn
* 此算法可在指数为1时减少一步计算(base *= base)
* 本人为渣校大二学生
*/
typedef long long ll;
ll pow(ll x, ll y) //改进版快速幂运算
{
ll r = 1;
ll base = x;
while (y > 0)
{
if (y == 1)
{
r *= base;
return r;
}
if (y & 1)
r += base;
base *= base;
y >>= 1;
}
return r;
}