P1595 信封问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<cstdio>
#define int long long
#define re register
const int MAXn = 20;

int n, a[MAXn + 10];
signed main() {
a[1] = 0; a[2] = 1;
scanf("%lld", &n);
for (re int i = 3; i <= n; ++i) {
a[i] = (i - 1) * (a[i - 2] + a[i - 1]);
}
printf("%lld\n", a[n]);
}