>>194
なんとか解析解出せた.……けど,問題は途中経過も全部出さないと駄目なんか…….

#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));
}