/// @file   main.cpp
/// @author Jens Gruschel
/// @date   2016-07-14
/// Berechnung von Potenzen, Fakultaeten und Binomialkoeffizienten

#include <iostream>

using std::cout;
using std::endl;

int pow(int m, int n)
{
    // die Zahl 1 n-fach mit m multiplizieren
    int result = 1;
    for (int i = 1; i <= n; ++i)
    {
        result *= m;
    }
    return result;
}

int fak(int n)
{
    // die Zahl 1 mit den Zahlen von 2 bis n multiplizieren
    int result = 1;
    for (int i = 2; i <= n; ++i)
    {
        result *= i;
    }
    return result;
}

int binom(int n, int k)
{
    // den Binomialkoeffizienten "n ueber k" berechnen
    return fak(n) / (fak(k) * fak(n - k));
}

int main()
{
    // Fakultaeten ausgeben
    for (int i = 1; i <= 10; ++i)
    {
        cout << fak(i) << ", ";
    }
    cout << endl;


    // Pascaksches Dreieck ausgeben
    for (int i = 0; i < 10; ++i)
    {
        for (int j = 0; j <= i; ++j)
        {
            cout << binom(i, j) << " ";
        }
        cout << endl;
    }

    return 0;
}