Codeup579C 進製轉換

2021-10-03 22:42:11 字數 1032 閱讀 5127

時間限制 : 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...