將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...