#include <stdio.h>
int factorial(int n);
int comb(int m, int k);
int main(void){
int m, k;
printf("%d個の中から%d個を取り出す組み合わせは、%d個です。\n",m
,k
,comb
(m
,k
)); return 0;
}
int factorial(int n){
int i, result = 1;
for(i=n;i>1;i--){
result *= i;
}
return result;
}
int comb(int m, int k){
return factorial(m)/(factorial(k) * factorial(m - k));
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgZmFjdG9yaWFsKGludCBuKTsKaW50IGNvbWIoaW50IG0sIGludCBrKTsKCmludCBtYWluKHZvaWQpewoJaW50IG0sIGs7CglzY2FuZigiJWQiLCZtKTsKCXNjYW5mKCIlZCIsJmspOwoJcHJpbnRmKCIlZOWAi+OBruS4reOBi+OCiSVk5YCL44KS5Y+W44KK5Ye644GZ57WE44G/5ZCI44KP44Gb44Gv44CBJWTlgIvjgafjgZnjgIJcbiIsbSxrLGNvbWIobSxrKSk7CglyZXR1cm4gMDsKfQoKaW50IGZhY3RvcmlhbChpbnQgbil7CglpbnQgaSwgcmVzdWx0ID0gMTsKCWZvcihpPW47aT4xO2ktLSl7CgkJcmVzdWx0ICo9IGk7Cgl9CglyZXR1cm4gcmVzdWx0Owp9CgppbnQgY29tYihpbnQgbSwgaW50IGspewoJcmV0dXJuIGZhY3RvcmlhbChtKS8oZmFjdG9yaWFsKGspICogZmFjdG9yaWFsKG0gLSBrKSk7Cn0K