將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。
多組資料,每行為乙個長度不超過30位的十進位製非負整數。(注意是10進製數字的個數可能有30個,而非30bits的整數)
每行輸出對應的二進位制數。示例1
0138
0111這是一道關於大數整數的處理,對於長度為30的整數,我們採用字串的形式進行儲存。1000
首先我們回想一下,在將十進位制數轉化為二進位制數的時候的做法,採用的是「除2取餘,逆序排列」的做法:
那麼很顯然,我們需要乙個陣列來存放餘數,或者可以使用乙個棧實現逆序排列;
問題就轉化成可如何求這個大數除2的餘數。對於乙個數來說,其對2的餘數只取決於它的末位,即其末位對2的餘數;
所以我們必須儲存每一次 除以2的商,並且取其末位進行取餘。
最後將餘數逆序輸出即可,另外需要注意的是,每一次處理的數都是字元型。
1 #include 2 #include3 #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...