Codeup 1943 進製轉換

2021-09-14 00:52:50 字數 894 閱讀 8194

將乙個長度最多為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的整數 每行...