時間限制 : 1.000 sec 記憶體限制 : 32 mb
題目描述
將乙個長度最多為30位數字的十進位製非負整數轉換為二進位制數輸出。
輸入多組資料,每行為乙個長度不超過30位的十進位製非負整數。
(注意是10進製數字的個數可能有30個,而非30bits的整數)
輸出每行輸出對應的二進位制數。
樣例輸入 copy
985211
1126
樣例輸出 copy
1111011001
11010011
10001100110
模擬輾轉相除法,以十進位制為例,假設我們要求12的2進製表示
第一輪:以12作為被除數,2是除數。先是1÷2,商為0,餘數為1;然後是(1*10+2)÷2,商為6,餘數為0,所以最終該輪得到下一輪的被除數是06,該輪最終的餘數是0;
第二輪:以06作為被除數,2是除數。最終得到下一輪的被除數是03,該輪最終的餘數是0;
第三輪:以03作為被除數,2是除數。最終得到下一輪的被除數是01,該輪最終的餘數是1;
第四輪:以01作為被除數,2是除數。最終得到商為00,所以結束輾轉相除的這個過程,最終得到的餘數是1。
根據「先得到的餘數字於低位,後得到的餘數字於高位」的原則,最終12的2進製表示為1100。
#include
#include
intisempty
(char str)
return1;
}int
main()
//一輪
z[j++
]=tmp+
'0';
}while(!
isempty
(str));
for(
int i=j-
1;i>=
0;i--
)printf
("%c"
,z[i]);
printf
("\n");
}return0;
}
思路參考鏈結 Codeup 579 問題 B 數制轉換
求任意兩個不同進製非負整數的轉換 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,b是十進位制整數,2...
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...