C# :: Aufgabe #287 :: Lösung #2
3 Lösungen

#287
Die Collatz-Sequenz (3n+1)
Anfänger - C#
von DragStar
- 23.03.2020 um 09:34 Uhr
Schreibe ein Programm, welches die Eingabe einer Zahl anfordert und dann von dieser Zahl die Collatz-Sequenz ausgibt.
#2

von JKooP (18090 Punkte)
- 01.04.2020 um 09:29 Uhr
NET Core 3.x
C#-Code

using System; using System.Collections.Generic; namespace CS_Aufage_287_Collatz { class Program { static void Main(string[] args) { var c = Collatz(19); Console.WriteLine(string.Join(" | ", c)); Console.WriteLine(); CollatzR(19); } // Iterativ (Zahlen von 1 ...): public static IEnumerable<int> Collatz(int n) { // Bedingung 1: n > 0 if (n < 1) yield break; // Startwert an Collection übergeben yield return n; do { // Bedingung 2: n ist gerade => n/2 if (n % 2 == 0) n /= 2; // Bedingung 3: n ist ungerade => 3n+1 else n = 3 * n + 1; // Wert an Collection übergeben yield return n; } while (n > 1); } // Rekursiv (Zahlen größer 1): public static void CollatzR(int n) { Console.Write($"{n} | "); if (n > 1) { if (n % 2 == 0) CollatzR(n / 2); else CollatzR(3 * n + 1); } } } }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1