luogu1017 進製轉換 負數取模問題

2021-09-19 11:58:46 字數 461 閱讀 4245

給出 n 和 k,求實進製 n 的 k 進製表現方式;

短除法!可以解決正數部分的問題,但是有負數參取模運算,過程會出現問題;

淺顯易懂的分析

非常詳細的講解

設當前是k進製;

當餘數y是負數的時候,y+=k;轉換為正數;同時 讓 商 減少 k,不影響最後的運算結果。

本題在回溯的時候輸出,等同於(先儲存,再反向輸出);

**1:

#include using namespace std;

int a[20];

int n,k;

void qiu(int x)

qiu(x/k);

//回溯輸出

if(y<10) printf("%d",y);

else printf("%c",y-10+'a');

}int main()

P1017 進製轉換 負數進製

第乙個是十進位制數n 32768 n 32767 第二個是負進製數的基數 r。110001 1 2 5 1 2 4 0 2 3 0 2 2 0 2 1 1 2 0 輸入 15 2 輸出 15 110001 base 2 在計算機運算中會出現取模結果為負數的情況,例如 3 2 1 3 2 1 餘數是負...

洛谷1017 進製轉換

題目描述 我們可以用這樣的方式來表示乙個十進位制數 將每個阿拉伯數字乘以乙個以該數字所處位置的 值減1 為指數,以10為底數的冪之和的形式。例如 123可表示為1 10 2 2 10 1 3 10 0這樣的形式。與之相似的,對二進位制數來說,也可表示成每個二進位制數碼乘以乙個以該數字所處位置的 值 ...

P1017 進製轉換

我們可以用這樣的方式來表示乙個十進位制數 將每個阿拉伯數字乘以乙個以該數字所處位置的 值減1 為指數,以10為底數的冪之和的形式。例如 123可表示為 1 102 2 101 3 1001 times 10 2 2 times 10 1 3 times 10 01 102 2 10 1 3 100 ...