題目鏈結
錦囊1方法一:分析: 通過觀察,能夠發現序列上的第i位實際上是將i變成進製處理。
錦囊2先把原數按二進位制的方法轉成二進位制,然後再把轉換後的數看成k進製,再轉換回來。
問題描述
給定乙個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成乙個遞增的序列,例如,當k=3時,這個序列是:
1,3,4,9,10,12,13,…
(該序列實際上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…)
請你求出這個序列的第n項的值(用10進製數表示)。
例如,對於k=3,n=100,正確答案應該是981。
1,3,4,9,10,12,13,…
該序列實際上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2
設a[i]= 1, 2, 3, 4, 5, 6, 7, ........
則i :1 = 2^0, 2 = 2^1, 3 = 2^0+2^1,4 = 2^2,5 = 2^0+2^2, 6 = 2^1+2^2,7 = 2^0+2^1+2^2...........
則本題實際上就是將乙個二進位制的數轉化為其他進製的數。
#include using namespace std;
int main(int argc, char *ar**)
int ans = 0;
for(int i = binary.length()-1; i >= 0; i--)
ans = ans*k + binary[i]-'0';
cout<< ans << "\n";
return 0;
}
輸入格式
只有1行,為2個正整數,用乙個空格隔開:
k n(k、n的含義與上述的問題描述一致,且3≤k≤15,10≤n≤1000)。
輸出格式
計算結果,是乙個正整數(在所有的測試資料中,結果均不超過2.1*109)。(整數前不要有空格和其他符號)。
樣例輸入
3 100
樣例輸出
藍橋杯 演算法訓練 數列
題目 演算法訓練 數列 時間限制 1.0s 記憶體限制 256.0mb 問題描述 給定乙個正整數k 3 k 15 把所有k的方冪及所有有限個互不相等的k的方冪之和構成乙個遞增的序列,例如,當k 3時,這個序列是 1,3,4,9,10,12,13,該序列實際上就是 3 0,31,3 0 31,3 2,...
演算法訓練 調和數列問題
問題描述 輸入乙個實數x,求最小的n使得,1 2 1 3 1 4 1 n 1 x。輸入的實數x保證大於等於0.01,小於等於5.20,並且恰好有兩位小數。你的程式要能夠處理多組資料,即不停地讀入x,如果x不等於0.00,則計算答案,否則退出程式。輸出格式為對於乙個x,輸出一行n card s 其中n...
演算法訓練 調和數列問題
輸入乙個實數x,求最小的n使得,1 2 1 3 1 4 1 n 1 x。輸入的實數x保證大於等於0.01,小於等於5.20,並且恰好有兩位小數。你的程式要能夠處理多組資料,即不停地讀入x,如果x不等於0.00,則計算答案,否則退出程式。輸出格式為對於乙個x,輸出一行n card s 其中n表示要計算...