传送门:http://ybt.ssoier.cn:8088/problem_show.php?pid=1313
【题目描述】
在所有的N
位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345
取余的值。
【输入】
读入一个数N
。
【输出】
输出有多少个数中有偶数个数字3
。
【输入样例】
2
【输出样例】
7
#include<iostream> using namespace std; #define N 12345 int main() { int n,f[1001][2]; cin>>n; //f[i][0]是前i位数偶数个三的个数 //f[i][1]是前i位数奇数个三的个数 f[1][0]=9;f[1][1]=1; for(int i=2;i<=n;i++) { int x=f[1][0]; if(i==n)x--;//如果是最前面一位数的话是不能为0的 f[i][0]=x*f[i-1][0]+f[i-1][1]; f[i][1]=x*f[i-1][1]+f[i-1][0]; f[i][0]%=N; f[i][1]%=N; } cout<<f[n][0]<<endl; }