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;
}