C# :: Aufgabe #296
8 Lösungen

Fibonacci-Folge - Berechnung der ersten 100 Zahlen (mit Schleife oder rekursiver Funktion)
Anfänger - C#
von Gnom
- 31.03.2020 um 00:35 Uhr
Berechne die ersten 100 Zahlen der Fibonacci-Folge (0, 1, 1, 2, 3, 5, 8, 13, ... vgl.: Fibonacci-Folge (Wikipedia))
Die Fibonacci-Folge beginnt mit den Zahen 0 und 1. Jede weitere Zahl der Folge wird durch Addition der beiden Vorhergehenden gebildet.
0
1
1 (=0+1)
2 (=1+1)
3 (=1+2)
5 (=2+3)
8 (=3+5)
13 (=5+8)
...
Die Aufgabe lässt sich mit einer relativ einfachen Schleife lösen.
Fortgeschrittene können sie auch mit einer rekursiven Funktion lösen.
Viel Erfolg!
Die Fibonacci-Folge beginnt mit den Zahen 0 und 1. Jede weitere Zahl der Folge wird durch Addition der beiden Vorhergehenden gebildet.
0
1
1 (=0+1)
2 (=1+1)
3 (=1+2)
5 (=2+3)
8 (=3+5)
13 (=5+8)
...
Die Aufgabe lässt sich mit einer relativ einfachen Schleife lösen.
Fortgeschrittene können sie auch mit einer rekursiven Funktion lösen.
Viel Erfolg!
Lösungen:
NET Core 3.x
f100 rekursiv wird wohl ein Weilchen dauern...
C#-Code
f100 rekursiv wird wohl ein Weilchen dauern...

using System; using System.Linq; namespace CS_Aufgabe_296_Fibonacci { class Program { static void Main(string[] args) { const int fn = 10; Enumerable.Range(1, fn).Select(x => Fib(x)).ToList().ForEach(Console.WriteLine); static int Fib(int x) => x > 1 ? Fib(x - 1) + Fib(x - 2) : x; } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Fibonacci { class Program { static void Main(string[] args) { Console.WriteLine("100 Fibonacci-Zahlen\n"); int[] fibo = new int[100]; int zahl1 = 0, zahl2 = 1, zahl3; for (int i = 0; i < fibo.Length; i++) { zahl3 = zahl1 + zahl2; zahl1 = zahl2; zahl2 = zahl3; fibo[i] = zahl3; } for (int j = 0; j < fibo.Length; j++) { object ausgabe = fibo.GetValue(j); Console.WriteLine(ausgabe.ToString()); } Console.ReadLine(); } } }

using System; using System.Collections.Generic; namespace FibonacciRecursive { class Program { static void Main(string[] args) { ulong start1 = 0; ulong start2 = 1; List<ulong> fibo = new List<ulong> { start1, start2 }; Fibonacci(ref start1, ref start2, fibo, 99); int j = 0; foreach (ulong f in fibo) { Console.WriteLine(j++ + ": " + f); } Console.ReadKey(); } private static void Fibonacci(ref ulong start1, ref ulong start2, List<ulong> fibo, int n) { if (n < 0) return; ulong next = start1 + start2; fibo.Add(next); Fibonacci(ref start2, ref next, fibo, n - 1); } } }

using System; namespace Fibbonacci { class Program { static void Main() { Console.WriteLine(String.Join(',',Fibo(100))); Console.ReadLine(); } static ulong[] Fibo(int anzahl) { ulong[] fibo = new ulong[anzahl]; fibo[0] = 0; fibo[1] = 1; for(int i = 2; i < anzahl; i++) { fibo[i] = fibo[i - 1] + fibo[i - 2]; } return fibo; } } }

using System; namespace Fibonacci { class Program { static void Main(string[] args) { int i; ulong fibNeu, fibMittel, fibAlt; fibNeu = 0; fibMittel = 0; fibAlt = 0; for (i = 1; i <= 100; i++) { if (fibMittel == 0) { fibNeu = fibAlt + 1; fibMittel = fibNeu; Console.Write(fibNeu + ", "); } else { fibNeu = fibMittel + fibAlt; fibAlt = fibMittel; fibMittel = fibNeu; Console.Write(fibNeu + ", "); } } } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Fibonacci { class Program { static void Main(string[] args) { ulong zahl1 = 0, zahl2 = 1, ergebnis; Console.WriteLine($"Fib 1 = {zahl1}\nFib 2 = {zahl2}"); for (int i = 3; i <= 100; i++) { ergebnis = zahl1 + zahl2; Console.WriteLine($"Fib {i} = {ergebnis}"); zahl1 = zahl2; zahl2 = ergebnis; } Console.ReadKey(); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Fibonacci_Folge { class Program { static void Main(string[] args) { ulong a = 0; ulong b = 1; int counter = 0; Console.WriteLine(a); Console.WriteLine(b); while (counter <= 100) { counter++; ulong c = b; b += a; a = c; Console.WriteLine(b); } Console.Read(); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Fibonacci_Folge { class Program { static void Main(string[] args) { ulong a = 0; ulong b = 1; int counter = 0; Console.WriteLine(a); Console.WriteLine(b); while (counter <= 100) { counter++; ulong c = b; b += a; a = c; Console.WriteLine(b); } Console.Read(); } } }