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.
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; }