/* * (c) 2008 Michael Stapelberg * * In der Aufgabe ging es darum, eine Zeile des Pascalschen Dreiecks * rekursiv in funktionalem C++ zu berechnen. * * Kompilieren und ausführen via: * make pascal * ./pascal * */ #include #include using namespace std; static int n_ueber_k(int n, int k) { return (k == 0 || k == n) ? 1 : n_ueber_k(n-1, k-1) + n_ueber_k(n-1, k); } static int pascalsche_zeile(int n, int k, int schritt) { cout << n_ueber_k(n, k) << " "; return (n == 1 || schritt > 0) && (n <= schritt+1 || k == 0) ? 1 : pascalsche_zeile(n, k+1, schritt+1); } int main() { int n; cout << "Geben Sie die Zeilennummer des Pascalschen Dreiecks ein:" << endl; cin >> n; cout << (n == 0 ? 1 : pascalsche_zeile(n, 0, 0)) << endl; }