【題目描述】
在所有的N位數中,有多少個數中有偶數個數字3?由於結果可能很大,你只需要輸出這個答案對12345取余的值。
【輸入】
讀入一個數N。
【輸出】
輸出有多少個數中有偶數個數字3。
【輸入樣例】
2
【輸出樣例】
73
樣例:是72個0個3(如21),1個偶數3(33)
我們看一個當n=3時怎樣的。
選擇百位:偶數個3:8(沒有0和3) 奇數個3:1
選擇十位:偶數個3:8*9+1(33) 奇數個3:1*9+8*1;(百位為3十位為非3方案數+百位非0非3十位為3方案數)
選擇個位:偶數個3:略。
#include<iostream> #include<cstdio> using namespace std; const int mod = 12345; int num[1010][2]; int main() { int n; num[1][0] = 9; num[1][1] = 1; scanf("%d", &n); int x = num[1][0]; for (int i = 2; i <= n; ++i) { if (i == n)--x; num[i][0] = (num[i - 1][0] * x + num[i - 1][1]) % mod; num[i][1] = (num[i - 1][1] * x + num[i - 1][0]) % mod; } printf("%d\n", num[n][0]); }
