Problem Description
在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。
Input
输入一个数N(1<=N<=1000),输入以0结束。
Output
对于每一个N输出有多少个数中有偶数个数字3。
Sample Input
2 0
Sample Output
73 【样例说明】在所有的2位数字,包含0个3的数有72个,包含2个3的数有1个,共73个
/* n=2时 偶数:30—39是1个+ 其他8个位数段都是9个 8*9+1 奇数:30-39是9个 + 其他8个位数段都是1个 1*9+8 */ #include<cstdio> #include<iostream> using namespace std; int main() { int i, n; int a[1050], b[1050]; a[1] = 1, b[1] = 8; for(i = 2; i < 1050; i++) { b[i] = (b[i - 1] * 9 + a[i - 1]) % 12345; //偶数 a[i] = (a[i - 1] * 9 + b[i - 1]) % 12345; //奇数 } while(scanf("%d", &n) != EOF && n) { printf("%d\n", b[n]); } return 0; }