演算法 任意進製改換

2021-08-17 19:25:07 字數 534 閱讀 4796

將n進製轉化為m進製可以分為兩步:

1. n->10:直接位權展開即可 eg: 10110 (2) =1*pow(2,4)+.......+0*pow(2,0);

2.10->m:這裡輾轉相除 取餘數 逆序輸出即可;

#include #include #include #include using namespace std;

int main()

else

sum+=x[i]*pow(n,strlen(s)-1-i);

}/*化字元為整形,同時計算10進製結果*/

while(sum)

/*將10進製結果轉化為m進製*/

for(i=p;i>=1;i--)

/*逆序輸出即可*/

return 0;

}

3.上述為正進製,在2023年noip提高組(洛谷p1017)有負進製這樣的題型

那麼其轉化重點在於餘數字不可為負,只需 餘數-=進製; 被除數++; 即向前借位,即可;

任意進製轉換

本文參考 google 資料結構 c語言 一 簡介 進行任意進製的轉換 二 重點 通過對輸入的數進行分解,然後根據相應的數進行轉碼 三 include include using namespace std n為進製,w為待轉換的值 void conver int n,int w while i 0...

任意進製轉換

輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 output 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制 比如,10用a表示,等等 sample...

任意進製轉換

今天刷openjudge過基礎的時候才發現之前寫的進製轉換有bug,所以就更新了一下,這篇部落格就是為了記錄。include using namespace std intmain 與之配套的是兩個神奇的函式的講解 它的功能是將乙個任意1 36進製數轉化為10進製數,傳入字串,返回是long int...