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

So kannst du deine Eclipse Oberfläche anpassen

Eclipse anpassen

In diesem Beitrag möchte ich dir zwei ganz nette Features von Eclipse vorstellen. Es geht um Views und um Perspektiven. Wie du schon weißt, besteht Eclipse aus einer grafischen Oberfläche. Und in dieser Oberfläche stehen dir verschiedene Views zur Verfügung. Was ist so ein View?

Java Konsolenausgaben mit formatierten Zahlen

Java Konsolenausgaben Zahlen

Java Konsolenausgaben erzeugst du mit der System.out.println()-Anweisung. Dies ist relativ einfach. Aber es ist mitunter nicht ganz praktisch. Und zwar immer dann, wenn Zahlen im Spiel sind. Die Zahlen welche dann auf deiner Java Konsole erscheinen, sind unformatiert. Sie haben zu viele Kommastellen. Oder für eine bessere Darstellung benötigst du den Tausenderpunkt. Vielleicht möchtest du […]

Java Strings landen im String Constant Pool

Java-Strings-Pool

Du kennst das. Es ist abends. Du sitzt gemütlich vor dem Fernseher. Das Smartphone bimmelt. Kein Anruf. Nein – Eine Nachricht. Du liest die Nachricht sofort und antwortest darauf. Minuten später bekommst du die nächste Nachricht. Und auch auf diese antwortest du. Im Laufe des Abends entsteht daraus eine nette kleine Konversation. Und eh du […]

So nutzt du die While Schleife in deinem Java Programm

Java While Schleife

Manchmal ist es wichtig, Dinge einmal öfter zu tun. Bei der Java Programmierung kann es schonmal sein, dass du einen Code mehrfach ausführen lassen musst. Zum Beispiel die Zahlen eins bis zehn. Ein Java Programm, welches die Zahlen eins bis zehn wiedergibt. Na wie wäre das? Der Java Code dazu würde so aussehen: public class […]

Das Instanzieren von Java Klassen verhindern

Java Objekte Instanzieren verhindern

Die Instanzierung von Java Klassen verhindern. Was heißt das? Instanzen sind die Objekte einer Java Klasse. Und Instanzieren oder Instanzierung heißt nichts anderes, als Objekterstellung. Aber was soll das? Oder mal anders gefragt: Wieso sollte man verhindern, dass eine Java Klasse – Objekte erstellen kann? Schließlich sind doch Objekte der Sinn und Zweck jeder objektorientierten […]

So nutzt du getter und setter Methoden bei der Java Programmierung

Java Keyword private

In diesem Artikel möchte ich dir zeigen, wie du Instanzvariablen innerhalb der Java Klasse schützt. Und den Zugriff nur noch indirekt über getter und setter Methoden anbietest. Stell dir vor. Du hast ein Programm zur Lagerverwaltung geschrieben. Dieses Programm dient Möbelhäusern dazu, ihre Bestände zu verwalten. Und das Programm erwartet vom Nutzer gewisse Eingaben zu […]

Java lernen von Kopf bis Fuß

Wenn du Java lernen möchtest, kannst du an meinem kostenlosen Java Kurs teilnehmen. Aber manch Einer hätte gern eine zweite Meinung. Und da bieten sich natürlich Java Bücher an. Eines dieser Java Bücher möchte ich dir jetzt vorstellen. Dieses Buch nennt sich „Java von Kopf bis Fuß“. Was kannst du von diesem Buch erwarten? Also […]

So kannst du Java Arrays mit for Schleife füllen und auslesen

Java Arrays For Schleife

Wir haben in einem anderen Beitrag bereits über Java Arrays gesprochen. So ein Array speichert Zahlen, Texte oder Objekte in eine Art Liste. Und dann kannst du ganz bequem über den Index das Array füllen und die bereits enthaltenen Werte abrufen. Ganz bequem? So, wie ich dich aus dem letzten Beitrag entlassen habe, war das […]

Über das kurze Leben einer lokalen Variablen

Java Variable lokal

Lass uns über die Lebensdauer einer lokalen Variablen sprechen. Warum ausgerechnet die Lebensdauer? Alle Java Variablen, unterscheiden sich in folgenden Punkten: wo diese deklariert werden können, wie du diese aufrufen kannst, welchen Bereich diese abdecken, und Ihre Lebensdauer Und eine lokale Java Variable hat eine relativ kurze Lebensdauer. Schauen wir uns zuerst Klassen- und Instanzvariablen […]

Java lernen – 10 nützliche Tipps für Java Anfänger

Java Lernen Anfänger

Wenn du die Programmiersprache Java lernen möchtest, bist du hier prinzipiell erst einmal richtig. Und wenn du es wirklich ernst meinst und in die Java Programmierung einsteigen möchtest, solltest du auch meinen kostenlosen Java Kurs beanspruchen. Wenn du dabei bist, bekommst du: Eine Lektion pro Woche zu den Basics. Hier geht es um die ersten […]