#include <stdio.h>
int kaijo(int n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
int comb(int m, int k) {
return kaijo(m) / (kaijo(k) * kaijo(m - k));
}
void main() {
int m, k;
printf("%d個の中から%d個を取り出す組合せ数は、%d通りです", m
, k
, comb
(m
, k
)); }
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQga2Fpam8oaW50IG4pIHsKICAgIGludCByZXN1bHQgPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgcmVzdWx0ICo9IGk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9CgppbnQgY29tYihpbnQgbSwgaW50IGspIHsKICAgIHJldHVybiBrYWlqbyhtKSAvIChrYWlqbyhrKSAqIGthaWpvKG0gLSBrKSk7Cn0KCnZvaWQgbWFpbigpIHsKICAgIGludCBtLCBrOwoKICAgIHByaW50ZigibeOCkuWFpeWKm+OBl+OBpuOBj+OBoOOBleOBhDoiKTsKICAgIHNjYW5mKCIlZCIsICZtKTsKICAgIHByaW50ZigiJWRcbiIsIG0pOyAgCgogICAgcHJpbnRmKCJr44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiIpOwogICAgc2NhbmYoIiVkIiwgJmspOwogICAgcHJpbnRmKCIlZFxuIiwgayk7ICAKCiAgICBwcmludGYoIiVk5YCL44Gu5Lit44GL44KJJWTlgIvjgpLlj5bjgorlh7rjgZnntYTlkIjjgZvmlbDjga/jgIElZOmAmuOCiuOBp+OBmSIsIG0sIGssIGNvbWIobSwgaykpOwp9