hdu 1465 递归 错排问题

hdu 1465 递归 错排问题
这道题虽然求递推公式很简单,可是我却WA了几次:
1.递归问题中如果之直接用公式很容易栈溢出,用数组保留相应的值
2.由递归得到的最终结果很大所以在定义数据类型的时候要注意范围,否则正确的值
 1 #include  < stdio.h >
 2 #include  < stdlib.h >
 3 int  main ()
 4 {
 5    int i , n;
 6    __int64 a[21];
 7    
 8    a[1= 0; a[2= 1
 9       
10    while ( scanf ("%d"&n) != EOF )
11    {
12          
13          for (int i = 3; i <= n; i ++)
14          {
15              a[i] = (i - 1)*(a[i - 1] + a[i - 2]);
16          }
17          
18          printf ("%I64d\n", a[n]);
19    }

20    //system ("pause");
21    return 0;
22}

23

你可能感兴趣的:(hdu 1465 递归 错排问题)