C# :: Aufgabe #296

8 Lösungen Lösungen öffentlich

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!

Lösungen:

vote_ok
von JKooP (18090 Punkte) - 03.04.2020 um 13:42 Uhr
NET Core 3.x

f100 rekursiv wird wohl ein Weilchen dauern...

Quellcode ausblenden C#-Code
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;
        }
    }
}
vote_ok
von DragStar (2000 Punkte) - 06.04.2020 um 08:41 Uhr
Quellcode ausblenden C#-Code
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();

        }
    }
}
vote_ok
von luckyman81 (550 Punkte) - 09.04.2020 um 20:02 Uhr
Quellcode ausblenden C#-Code
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);
        }
    }
}
vote_ok
von blackliner (340 Punkte) - 16.04.2020 um 00:14 Uhr
Quellcode ausblenden C#-Code
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;
        }
    }
}
vote_ok
von soma (150 Punkte) - 18.04.2020 um 23:01 Uhr
Quellcode ausblenden C#-Code
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 + ", ");
                }
            }
        }
    }
}
vote_ok
von Spooner (340 Punkte) - 19.04.2020 um 21:28 Uhr
Quellcode ausblenden C#-Code
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();
        }
    }
}
vote_ok
von Kate (400 Punkte) - 02.07.2020 um 14:25 Uhr
Quellcode ausblenden C#-Code

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();

        }
    }
}


vote_ok
von Kate (400 Punkte) - 09.07.2020 um 09:52 Uhr
Quellcode ausblenden C#-Code
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();
        }
    }
}

2105810

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.