C# :: Aufgabe #361 :: Lösung #5

5 Lösungen Lösungen öffentlich
#361

Fröhliche Zahlen (Happy Number)

Fortgeschrittener - C# von JKooP - 28.02.2021 um 10:24 Uhr
Von einer fröhlichen Zahl spricht man, wenn eine natürliche Ausgangszahl (Integer)
nach einer bestimmten Iterationsvorschrift am Ende den Zielwert 1 hat.

Die Iterationsvorschrift hier:
Die Summe der Quadrate aller Ziffern einer Zahl.
Wiederholen des Prozesses mit der neu entstandenen Zahl, bis am Ende
das Ergebnis entweder 1 (true) ist oder die Schleife unendlich weiterläuft (false).

Beispiel Glückliche Zahl:
Zahl 19
1² + 9² = 82
8² + 2² = 68
6² + 8² = 100
1² + 0² + 0² = 1

Beispiel unendlich:
Zahl 2
2² = 4
4² = 16
1² + 6² = 37
3² + 7² = 58
5² + 8² = 89
8² + 9² = 145
...

Aufgabe 1 (mittel):
Erstelle eine Methode/Funktion, die als Ergebnis bei einer Glücklichen Zahl den Wert true
und ansonsten false zurückgibt. Dabei können mehrere Schleifen ineinander verschachtelt werden.

Aufgabe 2 (schwieriger):
Wie Aufgabe 1, aber mit nur einer Schleife.

Viel Spaß
#5
vote_ok
von JchrisP (60 Punkte) - 19.07.2021 um 15:35 Uhr
Quellcode ausblenden C#-Code



namespace FröhlicheZahl
{
    class Program
    {                
        public static bool istFroehlich(int z)
        {
            bool ist = false;
            HashSet<int> Summen = new HashSet<int>();
            while (Summen.Add(z))
            {               
                int s = 0;                
                while(z > 0)
                {
                    s += (int)Math.Pow(z % 10,2);
                    z /= 10;
                }
                z = s;
            }
            if (z == 1)ist = true;
            return ist;
        }
        static void Main(string[] args)
        {
            Console.WriteLine(istFroehlich(7)); //true
            Console.WriteLine(istFroehlich(11));//false           
            Console.ReadKey();
        }
    }
}


Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben