進製轉換 HDOJ2031

2021-06-21 03:15:16 字數 752 閱讀 4048

problem description

輸入乙個十進位制數n,將它轉換成r進製數輸出。

input

輸入資料報含多個測試例項,每個測試例項包含兩個整數n(32位整數)和r(2<=r<=16, r<>10)。

output

為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制(比如,10用a表示,等等)。

sample input

7 2 

23 12 

-4 3

sample output

111 

1b -11

#include#define maxn 1000

char c[maxn];//記錄輸出的字元陣列

int exchange(int n,int m)

while (n)

return l;

}int main()

for(i = l - 1;i >= 0; i--)//逆序輸出。

printf("\n");

}return 0;

}

另一種更簡單的解法:

#includeusing namespace std;

const char d[16]=;

int main()

for(k=0;n>0;n/=r)

s[k++]=d[n%r];

while(--k>=0)

cout<

hdoj 2031 進製轉換

題目鏈結 根據進製轉換的規律本質一直取餘即可。要注意當輸入是 2的32次方時,這時候置反會造成上溢位,但是題目的資料沒有這麼強,那就算了。如果比較強,還是用long long int 比較好 另外用到了stl裡的stack,比用陣列存起來然後從末位開始輸出的方式比起來邏輯上要簡單一點。include...

HDOJ 2031 進製轉換

problem description 輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 output 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制...

hdoj 2031進製轉換

problem description 輸入乙個十進位制數n,將它轉換成r進製數輸出。input 輸入資料報含多個測試例項,每個測試例項包含兩個整數n 32位整數 和r 2 r 16,r 10 output 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果r大於10,則對應的數字規則參考16進製制...