/* *******************************************************

   Uebungen zur Analysis I fuer Informatiker - WS 2003/04
   Blatt 4

   Freiwillige Zusatzaufgabe 20c)
   stirling.cpp

   Nicht-rekursive Berechnung von Stirling-Zahlen zweiter Art

   Leonhard Fellermayr, Mat. Nr. 22128130XXXX

   Auch im WWW: http://www.slacky.de/files/uni/analysis/stirling.cpp

   ******************************************************* */

#include <iostream>

using namespace std;

void stirlingdreieck (int anz_zeilen)
{

  int n, k;
  int arr[anz_zeilen][anz_zeilen];

  for (n = 0; n < anz_zeilen; n++)
  {
  
  	for (k = 0; k <= n; k++)
	{
  	
		if (((k == 0) && (n == 0)) || (k == n))
			arr[n][k] = 1;
		else if (k == 0)
			arr[n][k] = 0;
		else
			arr[n][k] = k * arr[n-1][k] + arr[n-1][k-1];
		
		cout << arr[n][k] << " ";

	}
	
	cout << endl;
  
  }

}

int main ()
{

  stirlingdreieck (10);

  return 0;

}
