進製轉換 牛客

2022-08-24 05:45:17 字數 849 閱讀 8408

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

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

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

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

013

8

0111

1000

這是一道關於大數整數的處理,對於長度為30的整數,我們採用字串的形式進行儲存。

首先我們回想一下,在將十進位制數轉化為二進位制數的時候的做法,採用的是「除2取餘,逆序排列」的做法:

那麼很顯然,我們需要乙個陣列來存放餘數,或者可以使用乙個棧實現逆序排列;

問題就轉化成可如何求這個大數除2的餘數。對於乙個數來說,其對2的餘數只取決於它的末位,即其末位對2的餘數;

所以我們必須儲存每一次 除以2的商,並且取其末位進行取餘。

最後將餘數逆序輸出即可,另外需要注意的是,每一次處理的數都是字元型。 

1 #include 2 #include 

3 #include 4

using

namespace

std;56

intmain()728

if(zero_num == len) break;29

}30for (int i=index-1;i>=0;i--)

3134 cout <

36 }

牛客網 進製轉換

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

牛客題 進製轉換

給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數 主要考慮負數情況和10進製以上怎麼轉換,進製轉換我們知道就是將m對n進行取餘,得到的結果就是低位的值,之後m m n 2進製用0,1表示 8進製由0 7表示 10進製是0 9表示,十六進製制由 0123456789abcde...

牛客網 進製轉換oj

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