diff --git a/lab5/binom.cpp b/lab5/binom.cpp index 73d9f51..7aa4ce4 100644 --- a/lab5/binom.cpp +++ b/lab5/binom.cpp @@ -1,11 +1,19 @@ #include "binom.hpp" + int main() { Binom b(10, 0.5); + std::cout << "Q1: Factorials" << std::endl; for (int i = 0; i < 10; i++) { - std::cout << b.factorial(i) << std::endl; + std::cout << b.factorial(i + 1) << std::endl; + } + + std::cout << "Q2 choose" << std::endl; + for (int i = 0; i < 10; i++) { + std::cout << b.choose(10, i + 1) << std::endl; + } return 0; diff --git a/lab5/binom.hpp b/lab5/binom.hpp index cf8970a..af682e4 100644 --- a/lab5/binom.hpp +++ b/lab5/binom.hpp @@ -19,7 +19,23 @@ class Binom { inline int Binom::factorial(int n) const { - return n; + + if (n <= 1) + return 1; + + return this->factorial(n - 1) * n; + +} + +inline double Binom::choose(int a, int b) const { + + // double a_dbl = (double) a; + // double b_dbl = static_cast(b); + + return this->factorial(a)/( + factorial(a - b) * factorial(b) + ); + } #endif