Methoden Zwei Zahlen nach dem Reißverschluss-*‐Prinzip zusammenfügen und ausgeben.

ny_94

Neues Mitglied
Hallo, ich komme einfach nicht auf den Algorithmus wie ich das machen soll. Stecke fest und bitte um Hilfe.
Ich denke mal ich gebe die Zahl ein und muss sie dann iwie mit einer Schleife durchlaufen und die einzelnen Ziffern raus picken.

Hier ein Bsp.

zahl1 : 4589
zahl2:1732

Reißverschlussverfahren : 41578392

Bitte um Hilfe.

Danke im vorraus !

🙂
 
Java:
public int f(int num1, int num2){
    String tmpStr= "";
    char[] ch1 = Integer.toString(num1).toCharArray();
    char[] ch2 = Integer.toString(num2).toCharArray();
    for (int i=0; i<ch1.length; i++){
        tmpStr = tmpStr + ch1[i] + ch2[i];
    }
    return Integer.parseInt(tmpStr);
}
 
Java:
public int f(int num1, int num2){
    String tmpStr= "";
    char[] ch1 = Integer.toString(num1).toCharArray();
    char[] ch2 = Integer.toString(num2).toCharArray();
    for (int i=0; i<ch1.length; i++){
        tmpStr = tmpStr + ch1[i] + ch2[i];
    }
    return Integer.parseInt(tmpStr);
}

Code hilft dem TO auch nicht weiter wenn er es nicht versteht 🙂. Besser ist es wenn man ihn selbst an die Lösung versucht heranzubringen. Zumal deine Lösung in einigen Situationen Probleme machen kann, hierfür wären zunächst noch Randbedingungen interessant vom TO.
Denn in deiner Lösung gehst du davon aus dass beide Zahlen genau gleich lang sein müssen, des weiteren ist hier auch bald Ende da du einen Integer zurück gibst, sind die beiden zahlen noch ein-zwei Stellen länger passt das Ergebnis nicht mehr in einen Integer...auch ist das Zusammenfügen der Zahlen kein gutes Beispiel. das toCharArray ist auch unnötig (charAt) :noe:
 
Vielen Dank für die Anworten, jedoch funktioniert der Code nicht, wenn die 2 Zahlen unterschiedlich lang sind.

Meiner Vermutung liegt das ich, dass ich die 2 erstellten Arrays nochmals prüfen muss auf ihre länge mit der If-Funktion kann das sein ? :/
 
Das hier könnte weiterhelfen.
Der Code stellt sicher, dass char1 kürzer oder gleich lang ist wie char2.
Java:
if(char1.length > char2.length) {
    char[] temp = char1;
    char1 = char2;
    char2 = temp;
}
 

Zurück
Oben