c++ Binomialkoeffizient berechnen und Überlauf verhindern
Hallo,
habe ein Problem mit folgendem C++-Code:
long long binom ( int n, int k )
{
long long b = n - k + 1 ;
for ( int i = 2 ; i (kleiner gleich) k ; ++i )
{
b = ( b * ( n - k + i ) ) / i ;
}
return b ;
} // binom()
Das funktioniert ohne Überlauf für 66 über 23 = 348524321356411200 Bei etwas höheren Werten, z.B. 66 über 33, gibt es aber einen Überlauf.
Hat jemand eine Idee, wie ich den Überlauf verhindern kann, auch noch für etwas höhere Werte?
Danke