http://acm.hdu.edu.cn/showproblem.php?pid=2106
进制转换中主要注意进制的转换关系,可以类比为十进制数去做,这里我用的是处理字符串的方式做的。
#include <stdio.h> #include <string.h> int solve(char *str) { int len = strlen(str); int system = 0, num = 0; int i, j = 1, k; for(i = len - 2; i >= 0; i --){//查看是几进制的数 if(str[i] == '(')break; system = system + (int)(str[i] - '0')*j; j *= 10; } j = 1; for(k = i - 1; k >= 0; k --){//将该数转换为十进制数是多少 num = num +(int)(str[k]-'0')*j; j*=system; } // printf("system = %d\n", system); // printf("num = %d\n", num); return num; } int main() { // freopen("input.txt","r",stdin); int n; char str[70]; while(scanf("%d", &n)!=EOF){ int sum = 0; while(n--){ scanf("%s", str); sum += solve(str); // puts(str); } printf("%d\n", sum); } return 0; }