在Java中,可以使用快速幂算法来解决动态乘方问题。具体实现方式如下:
public static long power(long x, long y, long p) {
long res = 1; // 初始化结果为1
x = x % p; // 将底数对模数取余,防止超出long类型范围
while (y > 0) {
// 如果指数为奇数,则将结果乘上底数并对模数取余
if (y % 2 == 1) {
res = (res * x) % p;
}
// 将底数平方并对模数取余,指数除以2
x = (x * x) % p;
y /= 2;
}
return res;
}
在上述代码中,x代表底数,y代表指数,p代表模数。该函数的返回值为底数的指数次幂对模数取模的结果。需要注意的是,在求解过程中,底数和指数可能会超出long类型的范围,因此需要在每次运算中对结果取余。