话不多说直接上代码 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <math.h> #include <string.h> int main() { int a, b, i, len; char c[1000] = { 0 }; scanf("%d %d %s", &a, &b, &c); len = strlen(c); for (i = 0; i < len; i++) { if (c[i] == 'a') { c[i] = 10; } else if (c[i] == 98) { c[i] = 11; } else if (c[i] == 99) { c[i] = 12; } else if (c[i] == 100) { c[i] = 13; } else if (c[i] == 101) { c[i] = 14; } else if (c[i] == 102) { c[i] = 15; } else { c[i] = c[i] - 48; } } int sum = 0; int e = 0; double d; for (i = len - 1; i >= 0; i--) { d = pow(a, i) * c[e]; e++; sum = sum + d; } char num2[1000] = { 0 }; int j = 0; while (sum != 0) { num2[j] = sum % b; if (num2[j] > 9) { if (num2[j] == 10) { num2[j] = 'a'; } else if (num2[j] == 11) { num2[j] = 'b'; } else if (num2[j] == 12) { num2[j] = 'c'; } else if (num2[j] == 13) { num2[j] = 'd'; } else if (num2[j] == 14) { num2[j] = 'e'; } else { num2[j] = 'f'; } } else { num2[j] = num2[j] + '0'; } sum = sum / b; j++; } int len1; len1 = strlen(num2); for (i = len1 - 1; i >= 0; i--) { printf("%c", num2[i]); } }