#include <stdio.h>#include <stdlib.h>#include <string.h> //注意:string要加上.husing namespace std;int main() { int a,b; char n[101]; while (scanf("%d%s%d", &a, n, &b)!=EOF) { long sum = 0; int c = 1; //注意权值的使用 int len = strlen(n); for (int i=len-1; i>=0; i--) { //注意用法 int temp = 0; if (n[i]>='0'&&n[i]<='9') { temp = n[i]-'0'; } if (n[i]>='a'&&n[i]<='f') { temp = n[i]-'a'+10; } if (n[i]>='A'&&n[i]<='F') { temp = n[i]-'A'+10; } sum = sum+temp*c; c = c*a; //权值会随着指针变化 } char ans[101]=""; //注意:不能用char ans[101];因为在循环过程中,当上一次的ans的长度大于本次时,那么多出的部分将依然保留 int i=0; do{ int t = sum%b; if (t>=0&&t<=9) { ans[i++] = t+'0'; } if (t>=10&&t<=15) { ans[i++] = t-10+'A'; } sum /= b; }while (sum!=0); int ans_len = strlen(ans); for (int j=ans_len-1; j>=0; j--) { PRintf("%c", ans[j]); } printf("/n"); } return 0;}