diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-08-11 18:42:52 +0200 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-08-11 18:42:52 +0200 |
| commit | 7b624de8e3e3637a07364f992c1d7e4185e4a872 (patch) | |
| tree | fdb9b0c3f9185b267f9f7bfb9cb4b0e4cdd8cc16 /wip/53-combinatoric-selections.c | |
| download | project_euler-7b624de8e3e3637a07364f992c1d7e4185e4a872.tar.gz project_euler-7b624de8e3e3637a07364f992c1d7e4185e4a872.tar.bz2 project_euler-7b624de8e3e3637a07364f992c1d7e4185e4a872.zip | |
initial commit
Diffstat (limited to 'wip/53-combinatoric-selections.c')
| -rw-r--r-- | wip/53-combinatoric-selections.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/wip/53-combinatoric-selections.c b/wip/53-combinatoric-selections.c new file mode 100644 index 0000000..9006f5a --- /dev/null +++ b/wip/53-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; +} |
