Die eine Funktion ist rekursiv gelöst, die andere nicht rekursiv. Für große Werte (bspw. n=20 k=10) bekomme ich unterschiedliche Ergebnisse.. kann mir jemand erklären woran das liegt?
rekursive Funktion:
int binomialCoefficient( int n, int k ) {
if (n < 0 || k < 0 ){
return -1;
}
if ( k == n || k == 0 ){
return 1;
}
return binomialCoefficient(n-1,k) + binomialCoefficient(n-1, k-1);
}
nicht rekursive Funktion:
int faktorial(int n) {
if (n == 0 || n == 1 ) {
return 1;
}
else {
return n*faktorial(n-1);
}
}
int binominalCoefficient(int n, int k) {
// n oder k negativ?
if (n < 0 || k < 0 ){
return -1;
}
if ((0 <= n) && (n < k)) {
return 0;
}
return faktorial(n)/(faktorial(k)*faktorial(n-k));
}
Dieser Beitrag wurde von F481 bearbeitet: 26. Juni 2014 - 15:42

Hilfe
Neues Thema
Antworten

Nach oben






