p.s.个人收录用
题目描述
在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。
输入
读入一个数N
输出
输出有多少个数中有偶数个数字3。
样例输入 Copy
2
样例输出 Copy
73
提示
1<=N<=1000
在所有的2位数字,包含0个3的数有72个,包含2个3的数有1个,共73个
代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <math.h>
#include <string.h>
//位数问题
int n;
long long int a[1005] = { 0 };//偶数3
long long int b[1005] = { 0 };//奇数3
long long int is(int i)
{
if (a[i])
return a[i];
if (i != n)
{
a[i] = (is(i - 1) * 9 + b[i - 1]) % 12345;
b[i] = (is(i - 1) + b[i - 1] * 9) % 12345;
}
else
a[i] = (is(i - 1) * 8 + b[i - 1]) % 12345;
return a[i];
}
int main()
{
scanf("%d", &n);
a[1] = 9;
b[1] = 1;
printf("%d\n", is(n));
}