题目链接:http://vjudge.net/problem/HDU-1335
思路:把A进制的数字符串处理编程十进制形式,再转换成B进制。
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 #include <string> 7 #include <cstdlib> 8 9 using namespace std; 10 11 int main() 12 { 13 char s[100]; 14 int num[100],a,b; 15 while(~scanf("%s%d%d",s,&a,&b)) 16 { 17 int len = strlen(s); 18 memset(num,0,sizeof(num)); 19 for(int i = 0; i < len; i++) 20 { 21 if(s[i]>='0' && s[i] <= '9') 22 num[i] = s[i] - '0'; 23 else 24 num[i] = s[i] - 'A' + 10; 25 } 26 int A,NumA; 27 NumA = 0,A = 1; 28 for(int i = len-1; i >= 0; i--) 29 { 30 NumA += (num[i]*A); 31 A *= a; 32 } 33 char ans[100]; 34 int k = 0; 35 memset(ans,0,sizeof(ans)); 36 while(NumA) 37 { 38 char temp = NumA % b + '0'; 39 if(temp >='0' && temp<='9') 40 ans[k++] = temp; 41 else 42 ans[k++] = NumA%b+'A'-10; 43 NumA /= b; 44 } 45 ans[k] = '