diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-08-17 21:39:43 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-08-17 21:39:43 +0200 |
| commit | 3ffc76713f6db4c33f20588ce6896ea3c2bae2a7 (patch) | |
| tree | 1025c801330f078e3a12da191f923ae8b6ddd81b /c/wip/053-combinatoric-selections.c | |
| parent | 9a65938232d1fa9e1afe9a6eb2de48d25ff738a6 (diff) | |
| download | project_euler-3ffc76713f6db4c33f20588ce6896ea3c2bae2a7.tar.gz project_euler-3ffc76713f6db4c33f20588ce6896ea3c2bae2a7.tar.bz2 project_euler-3ffc76713f6db4c33f20588ce6896ea3c2bae2a7.zip | |
wip directory for each language
Diffstat (limited to 'c/wip/053-combinatoric-selections.c')
| -rw-r--r-- | c/wip/053-combinatoric-selections.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/c/wip/053-combinatoric-selections.c b/c/wip/053-combinatoric-selections.c new file mode 100644 index 0000000..9006f5a --- /dev/null +++ b/c/wip/053-combinatoric-selections.c @@ -0,0 +1,43 @@ +#include <stdio.h> +#include <stdlib.h> + + +typedef long long unsigned int Natural; + +Natural factorial(Natural n) +{ + if (n == 1 || n == 0) return 1; + else return n * factorial(n - 1); +} + +Natural combination(Natural n, Natural r) +{ + if (r > n) exit(1); + Natural num = 0; + /* for (Natural i = 0; i < r - 1; i++) */ + /* num *= n - i; */ + /* return num / factorial(r); */ + /* if (factorial(r) * factorial(n - r) == 0) return 0; */ + return (factorial(n) / (factorial(r) * factorial(n - r))); + /* return (factorial(r) * factorial(n - r)); */ +} + +int main(void) +{ + printf("10! = %llu\n", factorial(10)); + printf("23! = %llu\n", factorial(23)); + printf("(23 - 10)! = %llu\n", factorial(23 - 10)); + int counter = 0; + Natural comb = 0, n, r; + /* for (n = 1; n <= 24; n++) */ + /* for (r = 1; r <= n; r++) { */ + /* comb = combination(n, r); */ + /* if (comb > 1000000) { */ + /* counter++; */ + /* comb = combination(23, 10); */ + printf("%llu C %llu = %llu\n", n, r, comb); + /* } */ + /* } */ + printf("counter = %d", counter); + return 0; +} |
