G
Guest
Gast
Guten Abend!!
Bitte kann mir jemand helfen?? Ich hab' ein Programm geschrieben, welches mir zwei Strings miteinander addiert. Doch das haut irgendwie nicht hin; bzw. er lässt mich den zweiten String nicht einlesen... Als Ausgabe bekomme ich
Erste Zahl eingeben: 565565666989
Zweite Zahl eingeben:
Ergebnis :
Noch einmal (n/j)
Vielen Dank für eure Hilfe!!
LG
Bitte kann mir jemand helfen?? Ich hab' ein Programm geschrieben, welches mir zwei Strings miteinander addiert. Doch das haut irgendwie nicht hin; bzw. er lässt mich den zweiten String nicht einlesen... Als Ausgabe bekomme ich
Erste Zahl eingeben: 565565666989
Zweite Zahl eingeben:
Ergebnis :
Noch einmal (n/j)
Vielen Dank für eure Hilfe!!
LG
Code:
import inout.*;
public class String1 {
public static void main(String[] args) {
String num1, num2, result;
char choice;
do {
Out.print("Erste Zahl eingeben: ");
num1 = In.readString();
Out.print("Zweite Zahl eingeben: ");
num2 = In.readString();
Out.println();
result = add(num1, num2);
Out.println("Ergebnis :" + result);
Out.print("Noch einmal (n/j) ");
choice = In.readChar();
}while(choice == 'j');
}
static String add(String num1, String num2) {
StringBuffer result = new StringBuffer();
int num1Index = num1.length()-1;
int num2Index = num2.length()-1;
int num1Digit;
int num2Digit;
int overFlow = 0; //Überlauf; 0 am Anfang
int resDigit;
for (int i = 0; i < Math.max(num1.length(), num2.length()); i++) {
if (num1Index < 0) {
num2Digit = num2.charAt(num2Index) - '0';
resDigit = num2Digit + overFlow;
num2Index--;
} else if (num2Index < 0) {
num1Digit = num1.charAt(num1Index) - '0';
resDigit = num1Digit + overFlow;
num1Index--;
} else {// ASSERT: num1Index >= 0 && num2Index >= 0
num1Digit = num1.charAt(num1Index) - '0';
num2Digit = num2.charAt(num2Index) - '0';
resDigit = num1Digit + num2Digit + overFlow;
}
if (resDigit >= 10) {
resDigit %= 10;
overFlow = 1;
} else {
overFlow = 0;
}
result.insert(0, resDigit);
}
if (overFlow > 0) {
result.insert(0, overFlow);
}
return result.toString();
}
}