Skip to main content

Java Übung 22 – Finde die letzte Ziffer

In dieser Java Übung geht es darum, die letzte Ziffer einer Zahl zu finden.

Was meine ich damit?
Die letzte Stelle der Zahl 278 ist acht.
Die letzte Stelle der Zahl 5432 ist zwei.

Aufgabe 1:

  • Lege eine Klasse namens „LetzteZiffer“ an und schreibe eine Methode „findeLetzteZiffer(int zahl)“, welcher du beim Aufruf eine ganze Zahl übergibst.
  • Die Aufforderung zur Eingabe der Zahl soll über den Scanner erfolgen.
  • Die Methode „findeLetzteZiffer()“ liefert dir eine Bildschirmausgabe mit der letzten Ziffer zurück.
  • Zur Überprüfung rufe die Methode in der main-Methode der Klasse auf und übergib ihr die Zahl 5432.

Aufgabe 2:

  • Schreibe eine zweite Methode „findeLetzteZiffern(int zahl, int anzahl)“, welche dir die x-beliebige Anzahl der letzten Ziffern ausgibt.
  • Du übergibst dieser Methode als zweiten Parameter die Anzahl der letzten Ziffern.
  • Und auch diese Methode erzeugt eine Bildschirmausgabe mit den letzten Ziffern der übergebenen Zahl.
  • Zur Überprüfung rufe auch diese Methode in der main-Methode der Klasse auf und übergib ihr die Zahl 5432.
    Und als Anzahl übergibst du ihr die Zahl 3.

Na dann viel Spaß bei dieser Java Übung.


Zur Lösung dieser Java Übung benötigst du den Modulo-Operator

Der Modulo Operator gibt dir den Restwert einer Division zurück.

Und wenn du von einer ganzen Zahl die letzte Ziffer haben möchtest, musst du eine Kommastelle verschieben.
Und Kommastellen verschiebst du entweder durch Division oder Multiplikation mit 10-Potenzen.

Klingt im ersten Augenblick etwas schwierig.
Ist es aber nicht.
Am Beispiel:

  • Die Zahl 278 geteilt durch 10 ergibt 27 und Rest 8.
  • Die Zahl 5432 geteilt durch 10 ergibt 543 und den Restwert zwei.

Ds heißt:
Der Modulo 10 liefert dir die letzte Ziffer einer Zahl.

Und so im Code.


import java.util.Scanner; //Importanweisung für den Scanner

public class LetzteStelle {
	
	static void findeLetzteZiffer(int zahl){
		System.out.println("letzte Stelle: " + zahl % 10);//Rückgabe der letzten Stelle
	}

	public static void main(String[] args) {
		System.out.println("Gib eine Zahl ein");//Aufforderung zur Eingabe
		Scanner eingabe = new Scanner(System.in);//Scanner anlegen
		int zahl = eingabe.nextInt();//Eingabe und Speicherung der Zahl
		findeLetzteZiffer(zahl);//Aufruf der Methode  und Übergabe der Zahl
	}
}

So kannst du die Anzahl der Ziffern selbst festlegen.

Wenn du jetzt vielleicht die letzten zwei oder drei benötigst – nutzt du den Modulo von 100 oder tausend.

Die zweite Methode bekommt neben der eigentlichen Zahl noch die Anzahl der Stellen übergeben.

Im Rumpf der zweiten Methode muss jetzt eine Schleife die entsprechende 10-er Potenz finden.
Zum Beispiel:
Du übergibst die 3.
Dann bedeutet das 10*10*10=1000.

Da die Anzahl der Schleifendurchläufe übergeben wird und somit bekannt ist, bietet sich die for-Schleife an.

Und so würde sich der Kopf der Schleife zusammensetzen.

  • Der Schleifenzähler startet bei Null:
    int i=0;
  • Die Schleifenbedingung ist demnach:
    i muss kleiner sein, als der übergebene Parameter – also kleiner als die Anzahl der Stellen, welche du haben möchtest.

    i < anzahl;
  • Und i wird ganz normal hochgezählt:
    i++

Es ergibt sich demnach folgender Schleifenkopf.

(int i=0; i < anzahl; i++)

Im Rumpf der Schleife wird jetzt die 10-er Potenz gebildet.
Dafür benötigst du in der Methode eine lokale Variable, welche die Potenz speichert.
Der Startwert dieser lokalen Variablen muss eins sein.

Somit lautet die Anweisung im Schleifenrumpf.
potenz=potenz*10;

Und hier der komplette Code zur zweiten Methode:


import java.util.Scanner;

public class LetzteStelle {
	
	static void findeLetzteZiffern(int zahl, int anzahl){
		int potenz=1;//muss 1 sein da Multiplikation im Rumpf mit null unmöglich
		
		for(int i=0;i<anzahl;i++){
			potenz=potenz*10; //Hochpotenzieren entsprechend der Anzahl der Durchläufe
		}	
		System.out.println("letzten "+ anzahl+" Stellen: " + zahl % potenz);//Rückgabe der letzten Stellen
	}

	public static void main(String[] args) {
		Scanner eingabe = new Scanner(System.in);//Scanner anlegen
		
		System.out.println("Gib eine Zahl ein");//Aufforderung zur Eingabe
		int zahl = eingabe.nextInt();//Eingabe und Speicherung der Zahl
		
		System.out.println("Wie viele Stellen benötigst du?");
		int anzahl=eingabe.nextInt();//Eingabe und Speicherung der Anzahl der letzten Ziffern
		
		findeLetzteZiffern(zahl,anzahl);//Aufruf der Methode und Übergabe der Zahl
	}
}

Ähnliche Beiträge

Java Übung: Alles beginnt mit Hello World

Java Übung Hello World

Alles beginnt mit „Hello World“. Sämtliche Java Bücher beginnen mit diesem ersten Beispiel. Auch die Java Übungen sollen mit diesem ersten Programm starten. Definiere eine Klasse „Hello World“. Implementiere die Main Methode. Die Main Methode soll bei Programmaufruf die Bildschirmanzeige „Hallo Welt“ zurückgeben. Die Lösung zur Java Übung „Hallo Welt“ public class HelloWorld{ public static […]

Zwei smarte Möglichkeiten eine Java Zufallszahl zu erzeugen

Java Zufallszahl

Java Zufallszahl – Wieso? In der Java Programmierung benötigst du immer wieder einmal Zufallszahlen. Du möchtest deine Software mit Daten testen und dir keine Zahlen ausdenken. Du benötigst Stichproben, welche ein reales Verhalten simulieren. Du hast ein Spiel entworfen und die Akteure sollen mit zufälligen aber unterschiedlichen Größen, Rüstungsleveln usw. auftreten. Die Einsatzmöglichkeiten für Zufallszahlen […]

Sicherer Schleifendurchlauf mit Do while Schleife

Java Do While Schleife

Es ist doch eigentlich so: Immer wenn du die Anzahl der Schleifendurchläufe nicht kennst, nutzt du in deinen Java Programmen while Schleifen. Doch Java bietet dir neben der While Schleife einen weiteren Schleifentyp an. Diese nennt sich do while Schleife. Was kann die? Eigentlich genau das Gleiche, wie die while Schleife. Mit einem kleinen aber […]

So kannst du deine Java Methoden ausführen

Java Methoden ausführen

Du hast die ersten Java Methoden erstellt. Doch wie greifst du jetzt auf diese zu? Wie kannst du diese Methoden in einer anderen Klassen aufrufen? Welcher Unterschied, hinsichtlich des Methodenaufrufes, besteht eigentlich zwischen deinen Java Methoden? Diese Fragen möchte ich gern in diesem Beitrag beantworten. Gehen wir dazu in den Garten und schauen uns Blumen […]

3 Möglichkeiten um Vererbung von Java Klassen zu verhindern, zu verbieten oder ausschließen

Java Vererbung verhindern

Die ganze Java Vererbung für bestimmte Klassen ausschließen bzw. verhindern oder verbieten. Was soll das? Für bestimmte Java Klassen soll die Vererbung ausgeschlossen werden. Es soll also verhindert werden, dass Elternklassen – Kindklassen bekommen können. Klingt ein bisschen wie Verhütung, oder? Denn wie auch im echten Leben, können Kinder zu kleinen Tyrannen werden. Sie bedienen […]

So unterstützen dich Java Vererbungstabellen beim Entwurf

Java Vererbungstabellen

Bei der Java Vererbung gibt es zwei Klassenarten bzw. -stufen. Die Superklassen, welche einen allgemeinen Typen darstellen Und die spezielleren Unterklassen, welche die Superklasse um bestimmte Funktionen erweitern. Jetzt ist dieses ganze „Der-erbt-von-dem-Konzept“ mitunter sehr schwierig darzustellen. Zum Beispiel in einem Werkzeugkoffer. In einem Werkzeugkoffer befinden sich sämtliche Werkzeuge, von Säge bis Bohrmaschine. Wie machst […]

So kannst du in Java Und Verknüpfung anlegen und auswerten

Java Und

In Java stehen dir eine Menge Operatoren zur Verfügung. Einer dieser Operatoren ist der Und-Operator. Dies ist ein logischer Operator, da dieser sogenannte Wahrheitswerte mit einander verknüpft. Also…. Was erwartet dich in diesem Beitrag? Zuerst möchte ich dir die Aussagenlogik hinter dem Und-Operator zeigen. Also wann sind Aussagen wahr und wann sind diese falsch. Dann […]

So verwendest du den Java Oder Operator

Java Oder Operator

Kennst du das auch aus deiner Schulzeit? Du schreibst eine Klassenarbeit in irgendeinem Fach. Nehmen wir einfach mal an – Mathe. Jetzt bist gerade fertig mit deiner Arbeit. Und zu Hause wirst du gefragt: „Und wie lief es?“ Du antwortet:“ Ganz gut. Es wird bestimmt eine Eins oder eine Zwei.“ Drei oder vier Tage später […]

Java Objekte leben auf dem Heap

Java-Objekte-Heap

Java hat eine interne Speicherverwaltung. Eigentlich ist es nicht nur eine. Es sind mehrere.   Uns interessieren nur zwei. Methoden und lokale Variablen werden auf dem Stack verwaltet. Und die Speicherverwaltung für Java Objekte und den Instanzvariablen findet auf dem Heap statt.   Ja wieso braucht Java eigentlich zwei Speichersysteme?   Es ist ganz einfach. […]

Java Vererbung – Die Hierarchien richtig planen

Java Vererbung Hierarchien

Java Vererbung hat nichts mit Biologie zu tun. Die Genetik besagt, dass bestimmte Merkmalsausprägungen von den Eltern auf die Kinder übergehen. Solche Merkmalsausprägungen sind: die Hautfarbe die Haarfarbe die spezifische Größe und weitere körperliche Merkmale. Und in Java – was ist da Vererbung? Lass es uns herausfinden. Was erwartet dich in diesem Beitrag? Zuerst schauen […]

So kannst du mit dem StringTokenizer Java Strings zerlegen oder splitten

Java StringTokenizer Java Strings teilen zerlegen splitten

Java StringTokenizer – was ist das? Bevor ich diese Frage kläre, schiebe ich eine zweite Frage hinterher. Denn im Wort Tokenizer steckt das Wort Token. Also was ist ein Token? Hier die Definition zum Token: Ein Token ist eine bestimmte Aneinanderreihung von Zeichen. Man kann auch sagen, eine lexikalische Einheit. Das kann zum Beispiel eine […]