1 题目
2 代码
2.1 第一版
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class B1017 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
BigInteger A, B, Q, R;
A = new BigInteger(input[0]);
B = new BigInteger(input[1]);
Q = A.divide(B);
R = A.mod(B);
System.out.println(Q + " " + R);
}
}
2.2 第二版
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.math.BigInteger;
public class B1017 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] input = br.readLine().split(" ");
String A = input[0];
int B = Integer.parseInt(input[1]);
String Q = "";
int R = 0;
for (int i = 0; i < A.length(); i++) {
R = R * 10 + (A.charAt(i) - '0');
Q += R / B;
R = R % B;
}
if (Q.startsWith("0") && Q.length() != 1) {
System.out.println(Q.substring(1) + " " + R);
} else {
System.out.println(Q + " " + R);
}
}
}
3 要点
(1)第一版是借鉴的网上大佬的代码,没想到Java可以这样处理大数,那么之后关于大数的运算都可以使用这个类了。
(2)第二版是自己的想法,关键点在于最开始的余数R = 0。