C# :: Aufgabe #28
12 Lösungen

Ausgabe der Fibonacci-Folge
Anfänger - C#
von Dome
- 29.12.2012 um 00:58 Uhr
Schreiben Sie ein Programm, welches die Fibonacci-Folge ausgibt. Zuvor wird abgefragt, wie viele Werte ausgegeben sollen.
Hilfe von Wiki: Fibonacci-Folge
Hilfe von Wiki: Fibonacci-Folge
Konsolenausgabe:
Ausgabe der Fibonacci-Folge mit 10 Werten : 0,1,1,2,3,5,8,13,21,34
Lösungen:
Hier ist meine Lösung:
C#-Code

void main() { Console.Write("Anzahl der Werte für Fibonacci-Folge: "); string input = Console.ReadLine(); int werte = int.Parse(input); if (werte < 1) { Console.WriteLine("Nur positive Zahlen erlaubt!"); return; } List<int> fib = new List<int>{0,1}; for (int i = 2; i < werte; i++) { fib.Add(fib[i-1]+fib[i-2]); } Console.WriteLine("Werte: {0}", fib.Take(werte).Aggregate<int, string>(string.Empty, (x, y) => (x.Length > 0 ? x + ", " : x) + y.ToString())); }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Fibanocci_Folge { class Program { static void Main(string[] args) { Console.WriteLine("Wieviele Werte der Fibanocci-Folge sollen ausgegeben werden?"); string eingabe = Console.ReadLine(); int iEingabe = 1; if (Int32.TryParse(eingabe, out iEingabe)) { int[] arr = new int[iEingabe]; arr[0] = 0; arr[1] = 1; Console.Write(arr[0] + ", " + arr[1] + ", "); for (int i = 2; i < iEingabe; i++) { arr[0] = 0; arr[1] = 1; arr[i] = arr[i - 1] + arr[i - 2]; Console.Write(arr[i] + ", "); } Console.ReadLine(); }else { Console.WriteLine("Bitte Geben sie nur gültige Zahlen ein"); } } } }

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) { bool result = true; int anzahl; do { Console.WriteLine("Geben Sie die Anzahl an, wieweit die Folge errechnet werden soll"); if (Int32.TryParse(Console.ReadLine(), out anzahl)) { result = false; } else { Console.WriteLine("keine Ganzzahl eingegeben"); result = true; } } while (result); long zahl1 = 0, zahl2 = 1, ergebis = 0; string ausgabe = "0, 1, "; for (int i = 0; i <= anzahl; i++) { ergebis = zahl1 + zahl2; zahl1 = zahl2; zahl2 = ergebis; ausgabe += ergebis.ToString() + ", "; } Console.WriteLine(ausgabe); Console.ReadLine(); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { bool wiederhohlung = false; do { Console.WriteLine("Bitte geben sie den Wert ein wie weit die Fibonacci-Folge ausgegeben werden soll."); try { double input = Convert.ToDouble(Console.ReadLine()); wiederhohlung = false; double ersterwert = 1; double zweiterwert = 1; Console.Write("1,1"); for(double i = 0; i < input; i++) { double dritterwert = ersterwert + zweiterwert; Console.Write("," + dritterwert); ersterwert = zweiterwert; zweiterwert = dritterwert; } } catch { Console.WriteLine("Error!"); wiederhohlung = true; } } while (wiederhohlung); Console.ReadKey(); } } }

using System; namespace FibonacciFolge { class Program { static void Main(string[] args) { int anzahl = 0; ulong vorgänger = 0; ulong temp = 0; ulong knoten = 1; Console.WriteLine("Fibonacci-Folge\nWie viele Werte sollen ausgegeben werden?(Maximum: 100)"); do { Console.Write("Anzahl: "); } while(!Int32.TryParse(Console.ReadLine(), out anzahl)); Console.Write("Ausgabe der Fibonacci-Folge mit {0} Werten: ", anzahl); if (anzahl == 1) Console.WriteLine("0"); else if (anzahl == 2) Console.WriteLine("0,1"); else if (anzahl > 2) { Console.Write("0,1"); for (int i = 2; i < anzahl; i++) { temp = vorgänger; vorgänger = knoten; knoten += temp; Console.Write(",{0}", knoten); } Console.Write(".\n"); } else Console.WriteLine("Werte < 1 sind für die Anzahl nicht möglich.\nProgrammende"); } } }

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("Bitte geben Sie an, wie viele Werte ausgegeben werden sollen"); int d = Convert.ToInt32(Console.ReadLine()); int a = 0; int b =1; int c = 0; for (int i = 0; i < d; i++) { c = a + b; a = b; b = c; Console.WriteLine(c); } Console.ReadKey(); } } }

static void Main(string[] args) { ulong Loops; do Console.Write("Gewünschte Länge der Fibonacci-Folge : "); while (!UInt64.TryParse(Console.ReadLine(), out Loops)); for (uint x = 1, y = 0, n = 0; n < Loops; n++, y = x - y) Console.WriteLine("{0} \t + {1} \t = {2}", x, y, x += y); Console.WriteLine("Zum verlassen beliebige Taste drücken ..."); Console.ReadKey(); }
Kleine Fehlerbehandlung, falls der User zu viele Zahlen will.
Selbst long Variablen sind irgendwann zu klein.
C#-Code
Selbst long Variablen sind irgendwann zu klein.

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication17 { class Program { public static void fib(int n) { long[] fibbo = new long[n + 1]; if (n == 0) return; fibbo[0] = 1; if (n == 1) { Console.WriteLine("Die Fibbonacci-Folge bis zur {0}. Zahl", n); Console.WriteLine(); Console.WriteLine(fibbo[0]); return; } fibbo[1] = 1; Console.WriteLine("Die Fibbonacci-Folge bis zur {0}. Zahl", n); Console.WriteLine(); Console.WriteLine(fibbo[0] + "\n" + fibbo[1]); for (int i = 2; i < fibbo.Length-1; i++) { fibbo[i] = fibbo[i - 1] + fibbo[i - 2]; if (fibbo[i] < 0) { Console.WriteLine("Mehr Werte können nicht angezeigt werden. Die Zahlen werden zu groß."); return; } Console.WriteLine(i + 1 + ".: " + fibbo[i]); } } static void Main(string[] args) { int number; do { Console.WriteLine("Wieviele Zahlen der Fibbonacci-Folge berechnen? Maximum: 92"); } while (!int.TryParse(Console.ReadLine(), out number) || number < 0); fib(number); Console.ReadLine(); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using static System.Console; namespace Fibonacci_Folge { class Program { static void Main(string[] args) { int anzahl; long a, b, c; a = 1; b = 1; c = 1; WriteLine("Berechnung der Fibonacci Folge"); WriteLine("Wie viele Stellen sollen angegeben werden?"); anzahl = Int32.Parse(ReadLine()); Write("1,1,"); for(int i = 0; i < anzahl; i++) { a = b; b = c; c = a + b; Write("{0},", c); } ReadLine(); } } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TrainYourProgrammer28 { class Program { static void Main(string[] args) { Console.Write("Wie viele Werte der Fibonacci-Folge sollen ausgegeben werden? "); int werte = Convert.ToInt32(Console.ReadLine()), zaehler = 1, wertEins = 1, wertZwei = 1, ergebnis; if (werte > 1) { Console.Write("Ausgabe der Fibonacci-Folge mit {0} Werten: 1, 1, ", werte); } else { Console.Write("Ausgabe der Fibonacci-Folge mit {0} Werten: 1, ", werte); } while (zaehler <= werte) { ergebnis = wertEins + wertZwei; if(zaehler == werte) { Console.Write(ergebnis); } else { Console.Write(ergebnis + ", "); } wertEins = wertZwei; wertZwei = ergebnis; zaehler++; } Console.ReadKey(); } } }

static void Aufgabe_28() { int anzahl; ArrayList fibonacci = new ArrayList(); fibonacci.Add(0); fibonacci.Add(1); Console.Write("Wie viele Werte der Fibonacci-Folge sollen ausgegeben werden? "); anzahl = Convert.ToInt16(Console.ReadLine()); for (int i = 0; i < anzahl; i++) { if (i != anzahl - 1) { Console.Write(fibonacci[i] + ", "); } else { Console.Write(fibonacci[i]); } fibonacci.Add(Convert.ToInt16(fibonacci[i]) + Convert.ToInt16(fibonacci[i + 1])); } }

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace übung_28 { class Program { static void Main(string[] args) { int fib = 0; int e = 1; int y = 0; int goal = Convert.ToInt32(Console.ReadLine()); int counter = 0; while(counter != goal) { counter++; fib = e + y; y = e; e = fib; Console.WriteLine(counter + ".Fibonaccizahl: " + fib); } Console.ReadLine(); } } }