C/C++の宿題を片付けます 59代目
■ このスレッドは過去ログ倉庫に格納されています
0216デフォルトの名無しさん
2006/01/28(土) 22:50:40なんとか解析解出せた.……けど,問題は途中経過も全部出さないと駄目なんか…….
#include <stdio.h>
int fac(int n) { return n > 0 ? n * fac(n-1) : 1; }
int bin(int n, int r) { return fac(n)/fac(r)/fac(n-r); }
int f(int n, int r) {
int a, k;
if (r != 0) return bin(n,r) * f(n-r, 0);
else {
for (a = fac(n), k = 1; k <= n; ++k) a -= f(n,k);
return a;
}
}
int main() {
int n;
scanf("%d", &n);
printf("number of dearrangement for %d = %d\n", n, f(n,0));
}
■ このスレッドは過去ログ倉庫に格納されています