#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));
}
int main() {
int m, k;
printf("%d個の中から%d個を取り出す組合せ数は、%d通りです", m
, k
, comb
(m
, k
));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQga2Fpam8oaW50IG4pIHsKICAgIGludCByZXN1bHQgPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgcmVzdWx0ICo9IGk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0Owp9CgppbnQgY29tYihpbnQgbSwgaW50IGspIHsKICAgIHJldHVybiBrYWlqbyhtKSAvIChrYWlqbyhrKSAqIGthaWpvKG0gLSBrKSk7Cn0KCmludCBtYWluKCkgewogICAgaW50IG0sIGs7CgogICAgcHJpbnRmKCJt44KS5YWl5Yqb44GX44Gm44GP44Gg44GV44GEOiIpOwogICAgc2NhbmYoIiVkIiwgJm0pOwogICAgcHJpbnRmKCIlZFxuIiwgbSk7ICAKCiAgICBwcmludGYoImvjgpLlhaXlipvjgZfjgabjgY/jgaDjgZXjgYQ6Iik7CiAgICBzY2FuZigiJWQiLCAmayk7CiAgICBwcmludGYoIiVkXG4iLCBrKTsgIAoKICAgIHByaW50ZigiJWTlgIvjga7kuK3jgYvjgoklZOWAi+OCkuWPluOCiuWHuuOBmee1hOWQiOOBm+aVsOOBr+OAgSVk6YCa44KK44Gn44GZIiwgbSwgaywgY29tYihtLCBrKSk7CgogICAgcmV0dXJuIDA7Cn0=