// Bohn, Deimel, Schmalz

// Funktionsweise des Fibonacci-Algorithmus:
// 1. Die ersten beiden Fibonacci-Zahlen sind definiert:
//    - Fibonacci(0) = 0
//    - Fibonacci(1) = 1
// 2. Für n >= 2 berechnet sich die n-te Fibonacci-Zahl durch die Summe der beiden vorhergehenden:
//    - Fibonacci(n) = Fibonacci(n-1) + Fibonacci(n-2)
// 3. Der Algorithmus speichert die vorhergehenden Werte in zwei Variablen, um Speicherplatz zu sparen.
// 4. Eine Schleife iteriert von 2 bis n, wobei die vorhergehenden Werte aktualisiert werden, um die nächste Zahl zu berechnen.
// 5. Die n-te Fibonacci-Zahl wird am Ende der Schleife zurückgegeben.



static void Main(string[] args)
{
  Console.WriteLine("Willkommen zum Fibonacci-Berechner!");
  Console.Write("Gib die Position n ein (z. B. 5 für die fünfte Fibonacci-Zahl): ");

  int n;
  if (int.TryParse(Console.ReadLine(), out n) && n >= 0)
  {
    // Aufruf der Funktion zur Berechnung 
    int result = CalculateFibonacci(n);
    Console.WriteLine($"Die Fibonacci-Zahl an Position {n} ist: {result}");
  }
  else
  {
    Console.WriteLine("Bitte gib eine gültige Zahl >= 0 ein.");
  }
}

// Diese Methode berechnet die Fibonacci-Zahl 
static int CalculateFibonacci(int n)
{
  // Die ersten beiden Fibonacci-Zahlen sind bereits definiert: 
  if (n == 0) return 0;
  if (n == 1) return 1;

  int a = 0; // Fibonacci(n-2) 
  int b = 1; // Fibonacci(n-1) 

  // TODO:  Berechne die nächsten Fibonacci-Zahlen und aktualisiere a und b. Es wird eine Schleife benötigt

  return b; // Gib die berechnete Fibonacci-Zahl zurück 
}