题目:n个信封,n封信,全部装错的情况
#include<stdio.h>
long long F[21];
int main(){
F[1]=0;
F[2]=1;
for(int i=3;i<=21;++i){
F[i]=(i-1)*F[i-1]+(i-2)*F[i-2];
}
int n;
while((scanf("%d",&n))!=EOF){
printf("%lld\n",F[n]);
}
return 0;
}
题目:n个信封,n封信,全部装错的情况
#include<stdio.h>
long long F[21];
int main(){
F[1]=0;
F[2]=1;
for(int i=3;i<=21;++i){
F[i]=(i-1)*F[i-1]+(i-2)*F[i-2];
}
int n;
while((scanf("%d",&n))!=EOF){
printf("%lld\n",F[n]);
}
return 0;
}