gpt4 book ai didi

java - 求 a^b 余数的函数,其中 a、b 是正整数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:07 28 4
gpt4 key购买 nike

我正在使用下面的代码解决问题,但我在下面的行中得到了一个 NullPointerException pw.println(fastMod(a,b,BigInteger.TEN));

我在返回 BigInteger 值时遇到 NullPointerException。请建议并帮助我。谢谢。

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.math.BigInteger;
import java.util.StringTokenizer;


public class ModularExponential {
static StringTokenizer st;
static BufferedReader br;
static PrintWriter pw;

private static BigInteger fastMod(BigInteger base, BigInteger exponent,BigInteger modulo) {

BigInteger result = BigInteger.ONE;
while (BigInteger.ZERO.compareTo(exponent) > 0) {
if (exponent.testBit(0))
result = (result.multiply(base)).mod(modulo);
exponent = exponent.shiftRight(1);
base = (base.multiply(base)).mod(modulo);
}
return result.mod(modulo);
}

public static String next() throws IOException{
while(! st.hasMoreTokens())
st = new StringTokenizer(br.readLine());
return st.nextToken();
}
public static void main(String[] args) throws IOException{
st = new StringTokenizer("");
BigInteger a,b;
br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
while(T-- > 0) {
a = new BigInteger(next());
b = new BigInteger(next());
pw.println(fastMod(a,b,BigInteger.TEN));
}

}

}

最佳答案

您的 PrintWriter pwnull。你没有在任何地方初始化它。

例如pw = new PrintWriter(System.out);

将标准输出上的内容打印出来。

关于java - 求 a^b 余数的函数,其中 a、b 是正整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25808492/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com