【题目描述】
在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。
【输入】
读入一个数N。
【输出】
输出有多少个数中有偶数个数字3。
输入样例:2 输出样例:73
代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
#define INF 0x7fffffff
#define endl '\n'
int dp[50][50];
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
dp[1][0]=9,dp[1][1]=1;//dp[i][j]--- i-前i位数字 j-1(奇数) 0(偶数)
int n;cin>>n;
for(int i=2;i<=n;i++){
int test=9;
if(i==n) test--;
dp[i][0]=(test*dp[i-1][0]+dp[i-1][1])%12345;
dp[i][1]=(test*dp[i-1][1]+dp[i-1][0])%12345;
}
cout<<dp[n][0];
}
//考虑边界了?
//考虑特殊情况?
//考虑输出中间值勘误?