Wrong Envelop
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
Lin sometimes can be very careless. One day, he wrote n letter(s), but he put each of them in the wrong envelop. How many are the way(s) can he do this identically(different arrangement of the letter-envelop combinations). Because the number can be very big, to avoid the precision problem, modulo each number by 2014.
输入
Multiple input cases. n < 250001.
输出
The answer.
示例输入
1 2 3 4
示例输出
0 1 2 9
信封装错了。。。好规律的规律。。
#include <stdio.h> #include <string.h> long long f[250001]; int main() { int n; f[1]=0; f[2]=1; int i; for(i=3;i<=250001;i++) { f[i]=(i-1)*(f[i-2]+f[i-1]); f[i]=f[i]%2014; } while(scanf("%d",&n)!=EOF) { printf("%lld\n",f[n]); } return 0; }