牛客網 進製轉換(大整數)

2021-08-20 11:04:14 字數 826 閱讀 5668

將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。

輸入描述:

多組資料,每行為乙個長度不超過30位的十進位製非負整數。

(注意是10進製數字的個數可能有30個,而非30bits的整數)

輸出描述:

每行輸出對應的二進位制數。

只是十進位制轉二進位制的話,並沒有難度。就是依次去%2,直到被除數為0,將得到的餘數倒敘儲存下來就可以了。

現在的問題是30位已經超出了long long的範圍,只能用字串來表示。input表示輸入的字串,模擬除法運算的過程,從第一位開始除以2,得到的商記錄在上面,餘數落下來,與後一位組合做下一步的除以2運算。到最後一位時,就可以儲存%2的結果為餘數;重複這個過程直到被除數為0,也就是轉化為二進位制的過程結束。

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

int main()

else

input[i] = temp + '0';//一次迴圈完後input會變成上一步得到的商}}

int lenr = result.length();

string ans = "";//逆置餘數順序

for (int i = lenr-1; i >=0; i--)

cout

<< ans << endl;

}}

牛客網 進製轉換

題目描述 給定乙個十進位制數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...

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

題目描述 求任意兩個不同進製非負整數的轉換 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,...