【题解】位数问题

题目描述

        在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。

输入输出格式

输入格式

        一个数N(N<=1000)。

输出格式

        输出有多少个数中有偶数个数字33。

输入输出样例

输入样例

2

输出样例

73

题解

        记录当前有偶数个3和有奇数个3的情况数即可。

#include <iostream>

using namespace std;

int n;
int a[1005], b[1005];

int main()
{
    cin >> n;
    a[1] = 9;
    b[1] = 1;
    for(register int i = 2; i < n; ++i)
    {
        a[i] = (a[i - 1] * 9 + b[i - 1]) % 12345;
        b[i] = (b[i - 1] * 9 + a[i - 1]) % 12345;
    }
    if(n > 1) a[n] = (a[n - 1] * 8 + b[n - 1]) % 12345;
    cout << a[n];
    return 0;
}
参考程序

猜你喜欢

转载自www.cnblogs.com/kcn999/p/10661266.html