题目:hdu1465
题意:同时给n个网友每人写了一封信,这都没什么,要命的是,他竟然把所有的信都装错了信封!注意了,是全部装错哟!问有几种装法。
题解:错排公式。。f[n] = (n-1) * [f[n-1] + f[n-1]]
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int MAXN = 25;
long long int f[MAXN];
void init()
{
f[1] = 0;
f[2] = 1;
for(int i = 3;i <= 25;i++)
f[i] = (i-1) * (f[i-2] + f[i-1]);
return;
}
int main()
{
int n;
init();
while(~scanf("%d",&n))
{
printf("%lld\n",f[n]);
}
return 0;
}