【題目描述】
我們可以用這樣的方式來表示一個十進位制數:將每個阿拉伯數字乘以一個以該數字所 處位置的(值減1)為指數,以10為底數的冪之和的形式。例如,123可表示為1*10^2+2*10^1 +3*10^0這樣的形式。
與之相似的,對二進位制數來說,也可表示成每個二進位制數碼乘以一個以該數字所處位 置的(值-1)為指數,以2為底數的冪之和的形式。一般說來,任何一個正整數R或一個負整數-R都可以被選來作為一個數制系統的基數。如果是以R或-R為基數,則需要用到的數碼為0,1,....R-1。例如,當R=7時,所需用到的數碼是0,1,2, 3,4,5和6,這與其是R或-R無關。如果作為基數的數絕對值超過10,則為了表 示這些數碼,通常使用英文字母來表示那些大於9的數碼。例如對16進位制數來說,用A 表示10,用B表示11,用C表示12,用D表示13,用E表示14,用F表示15。 在負進位制數中是用-R作為基數,例如-15(+進位制)相當於110001(-2進位制),
並且它可以被表示為2的冪級數的和數: 110001=1*(-2)^5+1*(-2)^4+0*(-2)^3+0*(-2)^2+0*(-2)^1+1*(-2)^0
問題求解:
設計一個程式,讀入一個十進位制數的基數和一個負進位制數的基數,並將此十進位制數轉換為此負進位制下的數:-R∈{-2,-3,-4,....-20}
【輸入】
輸入的每行有兩個輸入資料。
第一個是十進位制數N(-32768<=N<=32767); 第二個是負進位制數的基數-R。
【輸出】
輸出此負進位制數,若此基數超過10,則參照16進位制的方式處理。
【輸入樣例】
30000 -2
-20000 -2
28800 -16
-25000 -16
【輸出樣例】
1101101010111000
1111011000100000
19180
7FB8