import java.util.*;
import java.lang.Math;

public class JavaApplication {
    private static Scanner input = new Scanner(System.in);

    public static void main(String[] args) {
       
        // Für die Zahl, von der die Quersumme berechnet, werden soll, wird die Variable zahl deklariert.
        int zahl;
        
        // Für das Ergebnis und Zwischenwerte der Quersumme wird die Variable quersumme deklariert.
        int quersumme;
        
        // Die Variable r ist eine Hilfsvariable, die dazu dient, die einzelnen Ziffern der mehrstelligen Zahl zwischenzuspeichern.
        int r;
        
        // Die Variable exit sorgt dafür, dass die Schleife beendet wird, wenn die Quersumme einstellig geworden ist.
        boolean exit;
        
        System.out.println("Geben Sie ein Zahl, die größer als 10 ist, ein: ");
        zahl = input.nextInt();
        
        // Es ist auch möglich, Quersummen von negativen Zahlen zu berechnen.  Dazu wird hier die boolesche Variable negativ deklariert und mit dem Wert false initialisiert.
        boolean negativ;
        
        negativ = false;
        
        // In der Fallunterscheidung wird geprüft, ob die eingegebene Zahl kleiner als 0 ist, falls ja, wird der Wert der Variable negativ auf true gesetzt und die eingegebene Zahl mit -1 multipliziert. Die Zahl ist dann positiv, nach der Berechnung der Quersumme wird das Ergebnis später wieder mit -1 multipliziert.
        if (zahl < 0) {
            negativ = true;
            zahl = (int) (zahl * -1);
        }
        exit = false;
        while (zahl >= 10 && exit == false) {
            
            // Ab hier beginnt die eigentliche Berechnung.
            quersumme = 0;
            while (zahl > 0) {
                
                // Solange die Variable zahl größer als 0 ist, wird die letzte Stelle der Zahl abgeschnitten und in der Variable r gespeichert.
                r = zahl % 10;
                
                // Die Zahl wird durch 10 geteilt, da im Schritte vorher die letzte Stelle gespeichert wurde.
                zahl = (int) ((double) zahl / 10);
                
                // Jetzt werden die Ziffern der Zahl schrittweise addiert.
                quersumme = quersumme + r;
            }
            if (quersumme >= 10) {
                zahl = quersumme;
            } else {
                
                // Im Fall, dass die berechnete Quersumme größer als 10 ist, das bedeutet, die Quersumme ist nicht einstellig, wird die Berechnung erneut durchlaufen, aber diesmal mit der gefundenen Quersumme als Startwert.
                exit = true;
            }
        }
        System.out.println("Die einstellige Quersumme der gebenen Zahl ist: ");
        
        // Hier wird geprüft, ob die ursprünglich Zahl negativ war, falls ja, wird die berechnete Quersumme mit -1 multipliziert.
        if (negativ) {
            quersumme = (int) (quersumme * -1);
        }
        System.out.println(quersumme);
    }
}
        
        
akzeptieren ablehen

Diese Website verwendet Cookies und Zählpixel, um Ihnen die bestmögliche Nutzung dieser Website zu ermöglichen.Learn more about cookies sehen Sie auch Datenschutz