時間限制: 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).
其後的m行中,每行3個數: 進製p,p進製數n,以及進製 q。
三個數之間用逗號間隔。
n 的長度不超過50位。
輸出轉換後的 q 進製數。
樣例輸入
6樣例輸出18,2345678a123,18
15,23456,18
12,2345678,20
16,12345678,23
25,3456ab,21
18,ab1234567,22
2345678a123用普通的進製轉換思維就可以了ac**:114e0
22b7a4
21a976l
7c2136
22jf0g367
1 #include進製2 #include 3 #include 4 #include 5 #include 6
#define frn1(i,x,n) for (int i=x;i<=n;i++)
7#define fdn1(i,x,n) for (int i=x;i>=n;i--)
8#define frn0(i,x,n) for (int i=x;i9
#define frd0(i,x,n) for (int i=x;i>n;i--)
10using
namespace
std;
11int n,a[61],b[191
],len;
12string
s;13
void ex_change(int p,int
q)14
25 b[++tot]=stp;
26while(!a[k] && k<=len)
27 k++;28}
29 frd0(i,tot,0)30
if (b[i]<10
)31 printf("%d"
,b[i]);
32else
33 printf("
%c",char(b[i]+55
));34 puts(""
);35}36
intmain()
3748
for (int i=k+1;s[i]!='
,';k=++i)
49if (s[i]>='
0' && s[i]<='9'
)50 a[++len]=s[i]-48;51
else
52 a[++len]=s[i]-55
;53 frn0(i,k+1
,s.size())
54 q=q*10+s[i]-48;55
ex_change(p,q);56}
57return0;
58 }
正整數的任意進製轉換
描述 將 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,以及進...
POJ44 正整數的任意進製轉換
描述將 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.其...
大整數任意進製轉換
include include include include using namespace std char str 1000 輸入字串 int start 1000 ans 1000 res 1000 被除數,商,餘數 轉換前後的進製 static int oldbase static int...