哈尔滨理工大学第六届程序设计团队 H-Permutation

/*
数学是硬伤。。。。。。推了半小时推出来一个错误的公式
*/
#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#define mod 1000000007
using namespace std;
int n,t;
/*
推出来的错误公式。。。。。。。
f[n]=f[n-1]+(n-1)*(f[n-1]-1);
*/
long long a[2000500];
int main()
{
    //freopen("C:\\Users\\acer\\Desktop\\in.txt","r",stdin);
    //freopen("C:\\Users\\acer\\Desktop\\out.doc","w",stdout);
    a[0]=1;
    a[1]=1;
    for(int i=2;i<=2000000;i++)
    {
        a[i]=i*a[i-1]+(i-1)*a[i-2];
        a[i]%=mod;
    }    
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        printf("%lld\n",a[n-1]);
    }
    return 0;
}

 

posted @ 2016-12-10 21:42  勿忘初心0924  阅读(179)  评论(0编辑  收藏  举报