1313:【例3.5】位数问题
【题目描述】 在所有的N位数中,有多少个数中有偶数个数字3?由于结果可能很大,你只需要输出这个答案对12345取余的值。 【输入】 读入一个数N。 【输出】 输出有多少个数中有偶数个数字3。 【输入样例】
【输出样例】
|
AC Code:
#include<iostream>
#include<sstream>
#include<cstdlib>
#include<cmath>
#include<cctype>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<map>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<list>
#define mod 998244353
#define INF 0x3f3f3f3f
#define Min 0xc0c0c0c0
#define mst(a) memset(a,0,sizeof(a))
#define f(i,a,b) for(int i=a;i<b;i++)
using namespace std;
typedef long long ll;
static const int MAX_N = 1e5 + 5;
static const double pi = acos(-1);
int dp[MAX_N][2];
int main(){
int n;
dp[1][1] = 1;
dp[1][0] = 8; //首位是不能为0的
while(scanf("%d", &n) != EOF){
for(int i = 2; i <= n; i++){
dp[i][1] = (dp[i - 1][1] * 9 + dp[i - 1][0]) % 12345;
dp[i][0] = (dp[i - 1][0] * 9 + dp[i - 1][1]) % 12345;
}
printf("%d\n", dp[n][0]);
}
return 0;
}