1313 例3 5 位數問題

2021-10-05 04:39:39 字數 853 閱讀 5704

【問題描述】

在所有的n位數中,有多少個數中有偶數個數字3?由於結果可能很大,你只需要輸出這個答案對12345取餘的值。

【輸入格式】

讀入乙個數n

【輸出格式】

輸出有多少個數中有偶數個數字3。

【輸入樣例】

2 【輸出樣例】

73 【資料規模】

1≤n≤1000

【樣例說明】

在所有的2位數字,包含0個3的數有72個,包含2個3的數有1個,共73個。

【演算法分析】

遞推考慮這種題目,一般來說都是從第i-1位推導第i位,且當前位是取偶數還是取奇數的。

可以用f[i][0]表示前i位取偶數個3有幾種情況,f[i][1]表示前i位取奇數個3有幾種情況。

則狀態轉換方程可以表示為:

f[i][0] = f[i-1][0] * 9 + f[i-1][1] * 1// 前i位有偶數個3的數字的個數,等於 前i-1位有偶數個3的數字的個數(f[i-1][0])乘以第i位有1個3的數字的個數(0-9中除了3之外的數字,共9種情況) 加上 前i-1位有奇數個3的數字的個數(f[i-1][1])乘以第i位有1個3的數字的個數(只能取3,共1種情況)

f[i][1] = f[i-1][0] * 1 + f[i-1][1] * 9

#include

#include

using

namespace std;

intmain()

else

cout << f[n][0

]<< endl;

}return0;

}

問題 尋找三位數

演算法提高 尋找三位數 時間限制 1.0s 記憶體限制 512.0mb 問題描述 將1,2,9共9個數分成三組,分別組成三個三位數,且使這三個三位數構成 1 2 3的比例,試求出所有滿足條件的三個三位數。例如 三個三位數192,384,576滿足以上條件。輸入格式 無輸入檔案 輸出格式 輸出每行有三...

反轉32 位數

筆試的時候遇見一道這樣的題目,不會做.回來趕緊上網找.感覺牛人就是牛人.這樣的演算法我為啥就是想不出來呢 把乙個32位的數按位反轉,就是第32位轉到第1位,第31位轉到第2位 什麼樣的演算法最節省效率?參考http www.yuanma.org data 2007 0723 article 2763...

36位數相加

源 1 package e08 public class bigint publicbigint string s publicint getbig publicbigint add bigint bi for inti big.length b.length i 0 i c i big i ret...