#include<iostream>

using namespace std;

//
// Iterative Erzeugung der Fibonacci-Zahlen
//

long unsigned int fibonacci(int x)
{
    if ((x == 0) || (x == 1))
    {
        return (x);
    }

    long unsigned int vorletzte = 0;
    long unsigned int letzte = 1;
    long unsigned int Ergebnis = 0;

    // for-Schleife von 2 bis x
    for (int j = 2; j <= x; j++)
    {
        Ergebnis = letzte + vorletzte;
        vorletzte = letzte;
        letzte = Ergebnis;
    }
    // Fibonacci-Zahl an main zurückgeben
    return Ergebnis;
}

int main()
{
    int n = 100; // Anzahl der Fibonacci-Zahlen
    long unsigned int FibonacciZahl; // Fibonacci-Zahlen

    cout << "\nDie ersten 100 Zahlen der Fibonacci Reihe lauten:\n\n";

    // for-Schleife
    for(int i = 0; i < n; i++)
    {
        // Funktion fibonacci aufrufen
        FibonacciZahl = fibonacci(i);
        cout << FibonacciZahl << " ";
    }

    return 0;
}
