题目描述
某人写了n封信和n个信封,如果所有的信都装错了信封。求所有信都装错信封共有多少种不同情况。
输入输出格式
输入格式:一个信封数n
输出格式:一个整数,代表有多少种情况。
输入输出样例
输入样例#1:
样例1:2 样例2:3
输出样例#1:
样例1:1 样例2:2 结论题:f[1]=0,f[2]=1,f[i]=(i-1)*(f[i-1]+f[i-2])。 详见:百度百科#include<iostream> #include<cstdio> using namespace std; int n,f[10005]; int main() { scanf("%d",&n); f[1]=0,f[2]=1; for(int i=3;i<=n;i++) f[i]=(i-1)*(f[i-1]+f[i-2]); printf("%d\n",f[n]); return 0; }