將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。
多組資料,每行為乙個長度不超過30位的十進位製非負整數。
(注意是10進製數字的個數可能有30個,而非30bits的整數)
每行輸出對應的二進位制數。
985
2111126
1111011001
11010011
10001100110
剛開始拿到這一題,採用long long 的整型進行輸入,可以通過給定的用例,但是提交顯示錯誤50%,後來仔細分析後發現,long long 的整型最多可以表示的十進位制數只有20為左右,而題目要求最多30位,最終使用字串陣列來存放這個整數。
先將這個數輸進陣列中,然後將其每個字元轉化為整型,然後就開始逐步除,從最後一位開始,不斷除2取餘,並存放在新陣列中,但是對於前面的數,要從第一位開始進行乙個判斷,先將他們都除以2,然後判斷該位是不是偶數,如果是偶數,也就意味著可以除盡,不會有餘數產生,這時置q=0;否則,如果為奇數,則意味著會餘1給下一位,所以這時候下一位要加10在進行除法運算,直i從0開始,直到i位置處的數為0 ,i++,一直迴圈到i==len跳出。
最後將餘數逆序輸出,便可以得到最終正確的答案。
具體**如下:
#include #include #include using namespace std;
int main()
;//用來存放將a中的字元轉化為int 型資料
int len=strlen(a);
for(int i=0;i=0;k--)
printf("%d",z[k]);
printf("\n");
}return 0;
}
Codeup 進製轉換
時間限制 1 sec 記憶體限制 32 mb 提交 1743 解決 466 提交 狀態 討論版 命題人 外部匯入 題目描述 輸入兩個不超過整型定義的非負10進製整數a和b 231 1 輸出a b的m 1 m 10 進製數。輸入輸入格式 測試輸入包含若干測試用例。每個測試用例佔一行,給出m和a,b的值...
codeup墓地 進製轉換
將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 每行輸出對應的二進位制數。985 2111126 1111011001 11010011 10001100110 i...
1943 數制轉換
時間限制 1 sec 記憶體限制 32 mb 提交 389 解決 162 提交 狀態 討論版 命題人 外部匯入 將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。多組資料,每行為乙個長度不超過30位的十進位製非負整數。注意是10進製數字的個數可能有30個,而非30bits的整數 每行...