题目分析:
可以自己看题目,装错信封的种类
http://acm.hdu.edu.cn/showproblem.php?pid=1465
题目分析:
直接错排公式
AC代码:
/**
*f[n]=(n-1)*(f[n-1]+f[n-2])错排
*第i个人不能占自己的位置,共有n-1中选择,对于下一个
*人,
*/
#include<iostream>
using namespace std;
long long a[22];
int main()
{
a[1]=0; a[2]=1;
for(int i=3;i<=20;i++){
a[i]=(i-1)*(a[i-1]+a[i-2]);
}
int n;
while(cin>>n) cout<<a[n]<<endl;
return 0;
}
原文地址:http://blog.csdn.net/fool_ran/article/details/40504095