题目
思路
当前位的1 - 9 推出下一位的个数。累加计数求和
每一个位置都可以推出 { − 1 , 0 , − 1 } + x \{-1, 0, -1 \} + x {−1,0,−1}+x的值
代码
#include <bits/stdc++.h>
using namespace std;
const int Mod = 998244353, N = 1e6 + 111;
int n, m, f[N][10];
int main() {
cin >> n;
for (int i = 1; i <= 9; ++ i)
f[1][i] = 1;
for (int i = 2; i <= n; ++ i)
for (int j = 1; j <= 9; ++ j)
for (auto k : {-1, 0, 1}) {
int w = j + k;
if (w == 0 || w == 10) continue;
f[i][w] = (f[i - 1][j] + f[i][w]) % Mod;
}
int res = 0;
for (int i = 1; i <= 9; ++ i)
res = (res + f[n][i]) % Mod;
cout << res << endl;
return 0;
}