Exercise: Using ArrayList
create a program that divides 2 very large numbers (digits greater than 10).
I already 'solved' the exercise but it does not occupy ArrayList
because I did not know how to apply it. I do not know how. Could you give me any suggestions? please?
public class Main {
static void division(List<Integer> lista, List<Integer> listb) {
List<Integer> listResult = new ArrayList<>();
if (lista.size() <= 10 || listb.size() <= 10) {
System.out.println("Los numeros deben ser mayores a 10");
} else {double a = 0, j = 0;
String Stringnumber = "";
String Stringnumber2 = "";
for (int number : lista) {
Stringnumber += String.valueOf(number);
}
for (int number : listb) {
Stringnumber2 += String.valueOf(number);
}
double test = Double.parseDouble(Stringnumber2);
double test2 = Double.parseDouble(Stringnumber);
double dividend = 0, divisor = 0;
if (test >= test2) {
dividend = test;
divisor = test2;
} else {
dividend = test2;
divisor = test;
}
for (int i = 9; i > 0 && j != 1; i--) {
if (i * divisor <= dividend) {
listResult.add(i);
a = dividend - (i * divisor);
if (a >= divisor) {
i = 9;
} else {
j = 1;
}
}
}
System.out.println("El resultado es:");
for (int i = 0; i < listResult.size(); i++) {
System.out.println(listResult.get(i));
}
}
}
public static void main(String[] args) {
Scanner x = new Scanner(System.in);
List<Integer> lista = new ArrayList<>();
List<Integer> listb = new ArrayList<>();
System.out.println("De un numero");
for (char digit : x.nextLine().toCharArray()) {
lista.add(digit - '0');
}
System.out.println("De otro numero");
for (char digit : x.nextLine().toCharArray()) {
listb.add(digit - '0');
}
x.nextLine();
division(lista, listb);
}
}