using System;

public class MyProgram
{
    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.
        bool exit;
        
        Console.WriteLine("Geben Sie ein Zahl, die größer als 10 ist, ein: ");
        zahl = (int) inputValue();
        
        // 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.
        bool 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;
            }
        }
        Console.WriteLine("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);
        }
        Console.WriteLine(quersumme);
    }
    
    // .NET kann nur einzelne Zeichen oder ganze Zeilen aus der  Konsole lesen. 
    // Die folgende Funktion löst das Problem.
    private static double inputValue()
    {
        double result;
        while (!double.TryParse(Console.ReadLine(), out result));
        return result;
    }
}
        
        
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