Das obige Zwischenergebnis dieser relativ kleinen Aufgabe, kann bei einigen
Programmiersprachen schon zum Überlauf führen.
z.B. sprengt es schon den Datentyp des Longword (32-Bit) bei C++
oder LongInt (32-Bit) bei Turbo Pascal.
In Java kann die Zahl im Datentyp long 64 Bit groß sein (max. 9.223.372.036.854.775.807).
Einfacher ist es über das Pascalsche Dreieck.
{ Funktion: Das Pascalsche Dreieck, Kombinationen ohne Wiederholung
Autor : DG1XPZ
Sprache : Turbo Pascal 7.0}
program pascal;
var k:integer;
var n:integer;
const max=62;
function pascalD(k,n: integer):LongInt;
var i,j: Longint;
matrix: array[1..max] of array [1..max] of Longint;
begin
for i:=1 to n+2 do
begin
matrix[i][1]:=1;
matrix[1][i]:=1;
end;
for j:=1 to n+1 do
begin
for i:=1 to n+1 do
begin
matrix[j+1][i+1]:=matrix[j+1][i]+matrix[j][i+1];
end;
end;
pascal:=matrix[(n+1)-k][k+1];
end;
begin
Writeln('Das Pascalsche Dreieck.');
Writeln('Kombinationen ohne Wiederholung ( k aus n)');
write('Bitte 1. Zahl eingeben (von k aus n) max ');write(max-2);write(':');
Readln(k);
write('Bitte 2. Zahl eingeben (von k aus n) max ');write(max-2);write(':');
Readln(n);
if (k<=60) and (n<=60) then
begin
write('Bei ');write(k);write(' aus ');write(n);
write(' gibt es ');Write(pascalD(k,n));write(' Kombinationen.');
end;
end.