Files
uni/ws2019/ipi/uebungen/binomial_fast.cpp
T
2019-11-13 21:34:24 +01:00

26 lines
700 B
C++

#include "cpp_headers/fcpp.hh"
// Helper Funktion fuer Fakultaet
// berechnet Fakultaet linear iterativ
int fakIter(int produkt, int zaehler, int ende) {
return cond(zaehler>ende,
produkt,
fakIter(produkt*zaehler,zaehler+1,ende));
}
// Berechnet die Fakulaet einer Zahl
int fakultaet(int n) {
return fakIter(1,1,n);
}
// Berechnet den Binomial Koeffizienten (n ueber k) durch seine explizite
// Darstellung
int binomial_fast(int n, int k) {
return fakultaet(n)/(fakultaet(k) * fakultaet(n-k));
}
int main(int argc, char **argv) {
return print(binomial_fast(readarg_int(argc, argv, 1),
readarg_int(argc, argv, 2)));
}