http://blog.csdn.net/u011514451/article/details/38561659
当然还有dp 写法 ,但递推写法提供了一种做题思路,打表找规律233
#include<iostream>
using namespace std;
int f[1001][1001];
int main()
{
int n;cin>>n;
f[1][0]=8;f[1][1]=1;
for (int i=2;i<=n;++i)
for (int j=0;j<=i;++j)
{ if (j!=0)
f[i][j]=f[i-1][j-1];
f[i][j]=(f[i][j]+9*f[i-1][j])%12345;
}
int ans=0;
for (int j=0;j<=n;++j)
if (j%2==0)
ans=(ans+f[n][j])%12345;
cout<<ans<<endl;
}