您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在 Java 中,可以使用 BigInteger
类来实现大整数的幂运算
import java.math.BigInteger;
public class BigIntegerPower {
public static void main(String[] args) {
// 定义底数和指数
BigInteger base = new BigInteger("12345678901234567890");
BigInteger exponent = new BigInteger("98765432109876543210");
// 计算幂
BigInteger result = power(base, exponent);
// 输出结果
System.out.println("Base: " + base);
System.out.println("Exponent: " + exponent);
System.out.println("Result: " + result);
}
/**
* 使用快速幂算法计算大整数的幂
*
* @param base 底数
* @param exponent 指数
* @return 幂的结果
*/
public static BigInteger power(BigInteger base, BigInteger exponent) {
if (exponent.equals(BigInteger.ZERO)) {
return BigInteger.ONE;
}
if (exponent.compareTo(BigInteger.ZERO) < 0) {
base = base.modInverse(BigInteger.ONE.shiftLeft(exponent.bitLength()));
exponent = exponent.negate();
}
BigInteger result = BigInteger.ONE;
base = base.mod(BigInteger.TEN_HUNDRED_THOUSAND_SEVEN); // 选择一个大的素数作为模数
while (exponent.compareTo(BigInteger.ZERO) > 0) {
if (exponent.and(BigInteger.ONE).equals(BigInteger.ONE)) {
result = result.multiply(base).mod(BigInteger.TEN_HUNDRED_THOUSAND_SEVEN);
}
base = base.multiply(base).mod(BigInteger.TEN_HUNDRED_THOUSAND_SEVEN);
exponent = exponent.shiftRight(1);
}
return result;
}
}
在这个示例中,我们定义了一个名为 power
的方法,它接受两个 BigInteger
类型的参数(底数和指数),并返回它们的幂。我们使用了快速幂算法来提高计算效率。注意,为了避免溢出,我们在每次乘法操作后都对结果取模。
你可以根据需要修改底数和指数的值,然后运行这个程序来查看计算结果。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。