POJ44 正整數的任意進製轉換

2022-02-28 23:45:57 字數 1318 閱讀 1372

描述將 p 進製 n 轉換為 q 進製。p 和 q 的取值範圍為【2,36】,其中,用到的數碼按從小到大依次為:0,1,2,3,4,5,6,7,8,9,a,b,...,z,不考慮小寫字母。 

注意:n 的長度不超過50位。 

三個數之間用逗號間隔。

關於輸入

1+m 行, 

第1行為 m,表示後面有 m 行,m不小於1. 

其後的m行中,每行3個數: 進製p,p進製數n,以及進製 q。 

三個數之間用逗號間隔

關於輸出

轉換後的 q 進製數。

例子輸入

6

18,2345678a123,18

15,23456,18

12,2345678,20

16,12345678,23

25,3456ab,21

18,ab1234567,22

例子輸出

2345678a123

114e0

22b7a4

21a976l

7c2136

22jf0g367

1 #include "

stdlib.h

"2 #include 3 #include4 #include 5

using

namespace

std;

6int

main()733

if (x >= q)//

x比q大的時候,進行除法

3439}40

if (x > 9)//

餘數進行轉換以後存入陣列res

41 res[count++] = x - 10 + 'a'

;42else

43 res[count++] = x + '0'

;44 len = -1;45

for(int i=0;i'

0';i++)

4649

if (strlen(num) - len < 2)50

break;51

}52for (int i = count - 1; i >= 0; i--)

53 cout <

54 cout <

56 }

view code

這個真的花了蠻長時間的

並不知道除k取餘法是個什麼鬼

感謝poj提問區的大佬們的點撥

正整數的任意進製轉換

描述 將 p 進製 n 轉換為 q 進製。p 和 q 的取值範圍為 2,36 其中,用到的數碼按從小到大依次為 0,1,2,3,4,5,6,7,8,9,a,b,z,不考慮小寫字母。輸入一共1 m 行 第1行為 m,表示後面有 m 行 1 m 60 其後的m行中,每行3個數 進製p,p進製數n,以及進...

正整數的任意進製轉換

時間限制 1 sec 記憶體限制 128 mb 題目描述 將 p 進製 n 轉換為 q 進製。p 和 q 的取值範圍為 2,36 其中,用到的數碼按從小到大依次為 0,1,2,3,4,5,6,7,8,9,a,b,z,不考慮小寫字母。輸入一共1 m 行 1行為 m,表示後面有 m 行 1 m 60 其...

大整數任意進製轉換

include include include include using namespace std char str 1000 輸入字串 int start 1000 ans 1000 res 1000 被除數,商,餘數 轉換前後的進製 static int oldbase static int...