Ich implementiere meine eigene BigInteger-Klasse mit einer ArrayList und bin mir nicht sicher, wie ich meine Additionsmethode schreiben soll.Verwenden einer Liste für BigInteger-Zusatz
public BigInt plus(BigInt operand){
//deep copy?
ArrayList<Byte> a = this.digit;
ArrayList<Byte> b = operand.digit;
ArrayList<Byte> sum = new ArrayList<>();
//code
return new BigInt();
}
Das Ziel ist, in einem anderen BigInt, nimmt seine Arraylist von Bytes übergeben und an die Arraylist von Bytes des aktuellen BigInt hinzufügen, aber wenn dies zu tun, wenn der Wert der Zugabe von 2 Bytes zusammen würden Sie tragen die '1' und fügen Sie es dem nächsten Byte in der Liste hinzu.
IE:
BigInt1 = "3,2,1,7"
BigInt2 = "1,4,3,5"
7 und 5 würde 12 schaffen Hinzufügen, so wird die durch 1 und 2 wird für das zurück BigInt in diesem Index sein.
sollte die endgültige BigInt
BigIntSum = "4,6,5,2"
Meine Frage ist sein, wie kann ich durch diese Listen durchlaufen, die Bytes hinzufügen und eine Nummer, falls erforderlich, tragen und das hinzufügen? Jede Hilfe wird sehr geschätzt. BigInt hat einen Konstruktor, der eine Zeichenfolge nehmen, die in seine eigene Arraylist
Warum? Die Addition zweier Ganzzahlen ergibt eine andere ganze Zahl. Sie brauchen keine Liste. Sie scheinen diese Methode nicht einmal zu beachten. – EJP
Ich benutze Bytes, und ein Byte kann keine 2-stellige Nummer sein. Die BigInt-Klasse platziert jede Ziffer der Nummer in einer Liste von Bytes. Diese Klasse soll Zahlen aufnehmen, die größer sind, als eine normale Ganzzahl verarbeiten kann, und verwendet daher die Liste. – Alkarin
Eigentlich kann ein Byte * eine 2-stellige Zahl sein, obwohl ich nicht erkennen kann, wie es um eine Liste geht (vorausgesetzt, wie in Ihrem Beispiel müssen Sie Zahlen mit mehr als 2 Ziffern darstellen). –