【问题】
求在 n 位数里,有多少个数中有偶数个 3 ?(只用输出答案 mod 12345 的结果)
【输入样例】
2
【输出样例】
73
【数据范围】
1<=n<=1000
【样例说明】
在 10 - 99 中
有 0 个 3 的数有 72 个
有 2 个 3 的数有 1 个
#include<cstdio>
int n,z[1001][2],x;
int main(){
scanf("%d",&n);
z[1][1]=1;z[1][0]=9;
for(int i=2;i<=n;i++){
x=z[1][0];
if(i==n) x--;
z[i][0]=(z[i-1][0]*x+z[i-1][1])%12345;
z[i][1]=(z[i-1][1]*x+z[i-1][0])%12345;
}
printf("%d\n",z[n][0]);
return 0;
}