C# :: Aufgabe #369 :: Lösung #1
2 Lösungen

#369
Und noch mehr Quersummen
Anfänger - C#
von JKooP
- 06.03.2021 um 18:04 Uhr
Von einer positiven Integer- Zahl soll solange die Quersumme gebildet werden
bis die Zahl einstellig geworden ist.
Die einstellige Zahl soll als Ergebnis ausgegeben werden.
Beispiel:
739 => 7 + 3 + 9 = 19
19 => 1 + 9 = 10
10 => 1 + 0 = 1
Viel Spaß
bis die Zahl einstellig geworden ist.
Die einstellige Zahl soll als Ergebnis ausgegeben werden.
Beispiel:
739 => 7 + 3 + 9 = 19
19 => 1 + 9 = 10
10 => 1 + 0 = 1
Viel Spaß
#1

von JKooP (18090 Punkte)
- 14.04.2021 um 18:58 Uhr
NET 5.x, C# 9.x; VS-2019
1. Lösung (LINQ)
C#-Code
2. Lösung (da hier keine Umwandlung in Strings stattfindet, ist diese Lösung ca. 50x schneller, wobei wir hier von Mikrosekunden sprechen)
C#-Code
1. Lösung (LINQ)

using System.Linq; System.Console.WriteLine(AddDigits(739)); static int AddDigits(int n) => (n.ToString().Length == 1) ? n : AddDigits((int)n.ToString().Select(x => char.GetNumericValue(x)).Sum());
2. Lösung (da hier keine Umwandlung in Strings stattfindet, ist diese Lösung ca. 50x schneller, wobei wir hier von Mikrosekunden sprechen)

System.Console.WriteLine(AddDigits(739)); static int AddDigits(int n) { if (NumLength(n) == 1) return n; var r = 0; while (n > 0) { r += n % 10; n /= 10; } return AddDigits(r); } static int NumLength(int n) { var c = 0; while (n > 0) { n /= 10; c++; } return c; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1