Привет всем, у меня есть следующая проблема: я должен суммировать, отдыхать, делить и умножать до действительно больших десятичных чисел, таких как: 14578541254,45874455874.Итак, Мои решения сосредоточены на двойном списке ссылок на Java, поэтому я реализовал класс вроде: Node, ListNode и так далее.Мне нужна помощь в множественности.Как умножить или разделить два списка, каждый из которых представляет большое десятичное число?Как справиться с этим?Заранее спасибо.
public class Nodo {//class Node
private Object digito;
private Nodo siguienteNodo; //NextNode
private Nodo anteriorNodo; //Node Before
public Nodo(Object digito) {
this.digito = digito;
this.siguienteNodo = null;
this.anteriorNodo = null;
}
/* cuerpo del constructor sin args */
public Nodo() {
}
/* getters y setters */
}
public class ListaCirculaDoblementeEnlazada {
/* Node de Start y Finish /
private Nodo inicio;
private Nodo fin;
private int tamanio;//size of the list
private ListaCirculaDoblementeEnlazada() {
inicio=null;
fin=null;
tamanio=0;
}
public boolean esVacia(){
return inicio == null;
}
public int getTamanio(){
return tamanio;
}
//List Nodes
public void listar(){
// Verifica si la lista contiene elementoa.
if (!esVacia()) {
// Crea una copia de la lista.
Nodo aux = inicio;
// Posicion de los elementos de la lista.
int i = 0;
// Recorre la lista hasta el final.
while(aux != null){
// Imprime en pantalla el valor del nodo.
System.out.print(i + ".[ " + aux.getDigito() + " ]" + " -> ");
// Avanza al siguiente nodo.
aux = aux.getSiguienteNodo();
// Incrementa el contador de la posión.
i++;
}
}
}
//Add to the end
public void agregarAlFinal(String valor){
Nodo nuevo = new Nodo();
nuevo.setDigito(valor);
if (esVacia()) {
inicio = nuevo;
fin = nuevo;
inicio.setSiguienteNodo(fin);
inicio.setAnteriorNodo(fin);
fin.setSiguienteNodo(inicio);
fin.setAnteriorNodo(inicio);
} else{
nuevo.setAnteriorNodo(fin);
nuevo.setSiguienteNodo(inicio);
fin.setSiguienteNodo(nuevo);
inicio.setAnteriorNodo(nuevo);
fin=nuevo;
}
tamanio++;
}
//Add to the begin
public void agregarAlInicio(String valor){
Nodo nuevo = new Nodo();
nuevo.setDigito(valor);
if (esVacia()) {
inicio = nuevo;
fin = nuevo;
inicio.setSiguienteNodo(fin);
inicio.setAnteriorNodo(fin);
fin.setSiguienteNodo(inicio);
fin.setAnteriorNodo(inicio);
} else{
nuevo.setSiguienteNodo(inicio);
nuevo.setAnteriorNodo(fin);
fin.setSiguienteNodo(nuevo);
inicio.setAnteriorNodo(nuevo);
inicio=nuevo;
}
// Incrementa el contador de tamaño de la lista.
tamanio++;
}
}