題目 1117 K 進製數

2021-10-17 04:34:42 字數 661 閱讀 4453

考慮包含n位數字的k-進製數. 定義乙個數有效, 如果其k-進製表示不包含兩連續的0.

考慮包含n位數字的k-進製數. 定義乙個數有效, 如果其k-進製表示不包含兩連續的0.

例:1010230 是有效的7位數

1000198 無效

0001235 不是7位數, 而是4位數.

給定兩個數n和k, 要求計算包含n位數字的有效k-進製數的總數.

假設2 <= k <= 10; 2 <= n; 4 <= n+k <= 18.

兩個十進位制整數n和k

十進位制表示的結果

2 10

90當時想的是列舉0的個數,然後用排列組合減去相鄰0的情況個數。後來發現當0的個數大於三的時候,計算情況太複雜了,寫不出來。

正解:寫出10進製的前幾位的答案數,然後找規律。

借別人的圖:

#include //#define int long long

const int maxn = 1e6 + 7;

using namespace std;

int dp[maxn];

signed main()

cout << dp[n] << endl;

return 0;

}

題目 1117 K 進製數

題目的意思就乙個n位的k進製數中不能有2個及2個以上的0是相鄰的,問這樣的數一共有多少個 首位肯定不能為0,前面的數如果為0則後面的數可以是除了0以外的任意數,前面的數如果不為0則後面的數就可以為任意值。實現只不過是模擬上面的過程,用乙個標記指示某一位是不是為0,如果前一位是0,那當前這位就一種情況...

問題 1117 K 進製數

考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.例 1010230 是有效的7位數 1000198 無效 0001235 不是7位數,而是4位數.給定兩個數n和k,要求計算包含n位數字...

藍橋杯(C語言題目)題目 1117 K 進製數

時間限制 1sec 記憶體限制 128mb 考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.例 1010230 是有效的7位數 1000198 無效 0001235 不是7位數,而是4...