一本通递推1313:【例3.5】位数问题

时间限制: 1000 ms         内存限制: 65536 KB
提交数: 8545     通过数: 4621 

【题目描述】

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

【输入】

读入一个数N(N1000)N(N≤1000)。

【输出】

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

【输入样例】

2

【输出样例】

73
源码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long a[500],b[500];//n位数中,有偶数个或有奇数个3的数字个数。
int main()
{
a[1]=9,b[1]=1;
int x=9;
long long n;
cin>>n;
for(int i=2;i<=n;i++)
{if(i==n)x=8;//首位不能为0.
a[i]=(x*a[i-1]+b[i-1])%12345;//取模。
b[i]=(x*b[i-1]+a[i-1])%12345;//同上。
}
cout<<a[n];
}

posted @ 2020-03-01 20:45  weijianzhen  阅读(641)  评论(0编辑  收藏  举报