AcWing 794. 高精度除法
原题链接
简单
作者:
想吃鱼的猫酱
,
2022-09-23 23:46:46
,
所有人可见
,
阅读 189
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String a = sc.next();
int b = sc.nextInt();
List<Integer> A = new ArrayList<>(a.length());
for (int i = a.length() - 1;i >= 0;i--) {
A.add(a.charAt(i) - '0');
}
List<Integer> C = div(A,b);
for (int i = C.size() - 2;i >= 0;i--) {
System.out.print(C.get(i));
}
System.out.println();
System.out.println(C.get(C.size() - 1));
}
public static List<Integer> div(List<Integer> A,int b){
List<Integer> C = new ArrayList<>();
//代表除完的余数
int r = 0;
//处理获得除数
for (int i = A.size() - 1; i >= 0; i--) {
r = r * 10 + A.get(i);
C.add(r / b);
r = r % b;
}
//反转数组
Collections.reverse(C);
//去掉前导零
while(C.size() > 1 && C.get(C.size() - 1) == 0) C.remove(C.size() - 1);
//将余数加入到C集合里面
C.add(r);
return C;
}
}