题目大意:
求n个人的错排数量。
解题思路:
错排公式:f[i] = (i-1)*(f[i-1] + f[i-2]);
代码:
#include<iostream>
using namespace std;
int main(void)
{
__int64 f[21];
f[1] = 0;
f[2] = 1;
for(int i = 3; i < 21; i++)
f[i] = (i - 1) * (f[i-1] + f[i-2]);
int n;
while(scanf("%d", &n) == 1)
{
cout << f[n] << endl;
}
return 0;
}