1313:【例3.5】位數問題


【題目描述】

在所有的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]);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM