错排问题(递推方法求解)例题是hdu4535 和 1465

来源:互联网 发布:水性互穿网络防腐面漆 编辑:程序博客网 时间:2024/05/27 00:30
#include<stdio.h>#include<string.h>#include<iostream>using namespace std;long long f[21];int main(){    int n;    f[2]=1;f[3]=2;    for(int i=4;i<=20;i++)    {        f[i]=(i-1)*(f[i-1]+f[i-2]);    }    while(scanf("%d",&n)!=EOF)    {        cout<<f[n]<<endl;    }    return 0;}

#include<stdio.h>#include<string.h>#include<iostream>using namespace std;long long f[200];int main(){    int n;    f[2]=1;f[3]=2;    for(int i=4;i<=100;i++)    {        f[i]=(i-1)*(f[i-1]+f[i-2])%1000000007;    }    int t;    scanf("%d",&t);    while(t--)    {        scanf("%d",&n);        cout<<f[n]%1000000007<<endl;    }    return 0;}


0 0