Hallo,
ich bin ein totaler Java Anfänger und bräuchte deswegen schnelle Hilfe.
Die Aufgabe war große Zahlen darzustellen, jedoch ohne BigInt.
Das habe ich mithilfe von arrays hinbekommen.
Allerdings habe ich Probleme bei dieser Aufgabe und hoffe auf eure Hilfe,,
Die Aufgabe war folgende:Implementiert eine Methode: GrosseZahl addiere(GrosseZahl andereZahl), die die andereZahl mit der aktuellen addiert und das Ergebnis zurückliefert.
Vielen Dank im Voraus
Hier ist mein bisheriger Quelltext:
ich bin ein totaler Java Anfänger und bräuchte deswegen schnelle Hilfe.
Die Aufgabe war große Zahlen darzustellen, jedoch ohne BigInt.
Das habe ich mithilfe von arrays hinbekommen.
Allerdings habe ich Probleme bei dieser Aufgabe und hoffe auf eure Hilfe,,
Die Aufgabe war folgende:Implementiert eine Methode: GrosseZahl addiere(GrosseZahl andereZahl), die die andereZahl mit der aktuellen addiert und das Ergebnis zurückliefert.
Vielen Dank im Voraus
Hier ist mein bisheriger Quelltext:
Java:
public class GrosseZahl {
byte[] ziffern; // Objekvariable deklariert
byte[] andereZahl = {1, 0, 0, 0, 0, 0, 0, 0, 0};
public void setZiffern(byte[] ziffern){ //Setter-Methode
this.ziffern = ziffern;
}
byte[] getZiffern(){ //Getter-Methode
return ziffern;
}
public GrosseZahl(String zahl) {
zahl = zahl.replaceFirst("0*", ""); // entfernt führende Nullen
byte[] ziffern = new byte[zahl.length()];
for(int i = 0; i < zahl.length(); i++){ // Schleife zum druchlaufen der Array Felder
char c = zahl.charAt(i);
ziffern[i] = (byte) (c - '0'); //schreibt die einzelnen Zahlen jeweils in ein array Feld
this.ziffern=ziffern;
}
}
public String toString(){
StringBuilder s = new StringBuilder();
for(byte value: ziffern){
s.append(value); // übergibt die Zahlen des Array in den String
}
return s.toString(); // übergibt den String "s" an die Methode "to.String" zurück
}
public static GrosseZahl addiere(byte[] GrosseZahl, byte[] andereZahl){
int [] ergebnis=new int [GrosseZahl.length+1]; //Feld für Ergebnis
int i; //Schleifenzähler
int s; //Summe der aktuell berechneten Stelle
int uebertrag = 0; //Übertrag für die nächste Stelle
for (i=0; i<ergebnis.length-1; i=i+1){
s=GrosseZahl[i]+andereZahl[i];
ergebnis[i]= (s+uebertrag) % 10;
uebertrag = s/10;
}
ergebnis[ergebnis.length-1]=uebertrag;
return ergebnis[i];
}
}
public class GroesseZahlTester {
public static void main(String[] args) {
GrosseZahl zahl1 = new GrosseZahl("00000345000467");
System.out.println(zahl1);