#include <stdio.h>
int factorial(int n)
{
int i,rtn=1;
if(n > 0)
{
for(i=1;i<n+1;i++)
{
rtn *= i;
}
return rtn;
}
else if(n == 0)
{
return rtn;
}
else
{
return 0;
}
}
int comb(int m, int k)
{
int rtn;
rtn = factorial(m) / (factorial(k) * factorial(m-k));
return rtn;
}
int main(void)
{
int m,k,ans;
ans = comb(m,k);
printf("%d個の中から%d個を取り出す組合せ数は、%d通りです。",m
,k
,ans
); }
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgZmFjdG9yaWFsKGludCBuKQp7CglpbnQgaSxydG49MTsKCWlmKG4gPiAwKQoJewoJCWZvcihpPTE7aTxuKzE7aSsrKQoJCXsKCQkJcnRuICo9IGk7CgkJfQoJCXJldHVybiBydG47Cgl9CgllbHNlIGlmKG4gPT0gMCkKCXsKCQlyZXR1cm4gcnRuOwoJfQoJZWxzZQoJewoJCXByaW50ZigiZXJyb3IiKTsKCQlyZXR1cm4gMDsKCX0KfQoKaW50IGNvbWIoaW50IG0sIGludCBrKQp7CglpbnQgcnRuOwoJcnRuID0gZmFjdG9yaWFsKG0pIC8gKGZhY3RvcmlhbChrKSAqIGZhY3RvcmlhbChtLWspKTsKCXJldHVybiBydG47Cn0KaW50IG1haW4odm9pZCkgCnsKCWludCBtLGssYW5zOwoJc2NhbmYoIiVkICVkIiwmbSwmayk7CglhbnMgPSBjb21iKG0sayk7CglwcmludGYoIiVk5YCL44Gu5Lit44GL44KJJWTlgIvjgpLlj5bjgorlh7rjgZnntYTlkIjjgZvmlbDjga/jgIElZOmAmuOCiuOBp+OBmeOAgiIsbSxrLGFucyk7Cn0K