牛客網 任意進製轉化

2021-09-29 11:27:49 字數 987 閱讀 2146

輸入描述:

輸入為一行,m(32位整數)、n(2 ≤ n ≤ 16),以空格隔開。

輸出描述:

為每個測試例項輸出轉換後的數,每個輸出佔一行。如果n大於9,則對應的數字規則參考16進製制(比如,10

用a表示,等等)

示例1:

輸入7 2

輸出111

首先要知道如何進製轉換, 你可以在紙上練習一下10(d)轉成2進製, 感受一下, 可以發現每一步都會得到乙個結果, 最後將結果逆序, 基於這個思想我們可以有一下步驟:

輸入十進位制數及進製數

完成n進製下的逆序遍歷, 這樣比較容易並且更加貼近實際

將結果逆序

列印結果

下面獻上**:

#include

#include

#include

using

namespace std;

intmain()

if(i <0)

int i = n;

// 完成sn進製下的數字遍歷, 可以發現是逆序的

for(

; i; i /

= sn)

else

}for

(size_t i =

0,j = s.

size()

-1; i < s.

size()

/2;++i,

--j)

if(flag ==0)

cout << s << endl;

else

cout <<

"-"+ s << endl;

system

("pause");

return0;

}

參考思想:

作者的另一篇部落格, 此時我還沒有考慮到16進製制時的影響.

但是其中的思想才是精髓

完成sn進製下的數字遍歷

牛客網 數制轉換 任意進製)

題目描述 求任意兩個不同進製非負整數的轉換 2進製 16進製制 所給整數在long所能表達的範圍之內。不同進製的表示符號為 0,1,9,a,b,f 或者 0,1,9,a,b,f 輸入描述 輸入只有一行,包含三個整數a,n,b。a表示其後的n 是a進製整數,b表示欲將a進製整數n轉換成b進製整數。a,...

牛客網 進製轉換

題目描述 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 輸入描述 輸入為一行,m 32位整數 n 2 n 16 以空格隔開。輸出描述 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果n大於9,則對應的數字規則參考16進製制 比如,10用a表示,等等 分析 較簡單,主要...

牛客網 進製轉換oj

題目描述 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 輸入描述 輸入為一行,m 32位整數 n 2 n 16 以空格隔開。輸出描述 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果n大於9,則對應的數字規則參考16進製制 比如,10用a表示,等等 示例1輸入 7 2...