Falls Ihr so wie ich einmal vor dieser Aufgabe steht, mit Hilfe von Java systematisch die größte Ziffer einer Zahl und deren Position in der Zahl herausfinden sollt, dem hilft sicherlich meine nachstehende Lösung. Mit Position sind die 1er, 10er und so weiter gemeint. Um diese Aufgabe lösen zu können, braucht man Verständniss über Schleifen und der Modulo-Operation. Ich habe den Quelltext so kommentiert, dass die Aktionen der Programmbefehle klar sein sollten. Falls nicht, einfach in den Kommentaren fragen.
public class GroessteZifferFinden { public static void main(String[] args) { int zahl = 49583; // zu "analysierende Zahl int groessteZiffer = 0; // variable zur ausgabe der größten Ziffer int teiler = 10; // wird genutzt um letzte Ziffer abzuschneiden int position = 1; // Tempörae Position der zu "analysierenden" Ziffer int positionGroessteZiffer = 0; // Position der größten Ziffer while(zahl != 0) // gilt solange die letzte Ziffer nicht durch den Teiler abgeschnitten wurde { int ziffer = zahl % teiler; // mit Modulo Operation letzte Ziffer bekommen bei 48 % 10 = 8 // Modulo gibt immer den Rest bei Division aus if(ziffer > groessteZiffer) // größer als zuvor gefundene Ziffer? { groessteZiffer = ziffer; // wenn ja, dann ziffer und position speichern positionGroessteZiffer = position; } zahl = zahl / 10; // letzte Ziffer abschneiden, // um die nächsten Ziffern zu analysieren // im weiterem Schleifendurchgang position *= 10; // Position immer mitzählen } // Ausgabe des Ergebnisses System.out.println(groessteZiffer + " " + positionGroessteZiffer + "er"); } } |
Testdaten:
49583 – größte Ziffer: 9 Position: 1000er
60001 – größte Ziffer: 6 Position: 10000er
10023 – größte Ziffer: 3 Position: 1er