zoj1334

题目大意: 给出三个数,A是7位数字,B和C,从B进制转换到C进制 解题思路: 无 代码如下: #include #include int mai

题目大意:

给出三个数,A是7位数字,B和C,从B进制转换到C进制

解题思路:

代码如下:

#include 
#include 
int main(void)
{char A[100];int B, C, num, len, i, base, flag;int ans[7];while (scanf("%s", A) != EOF){scanf("%d%d", &B,&C);num = 0;base = 1;flag = 0;len = strlen(A);for (i = len - 1; i >= 0; i--){if (A[i] >= '0' && A[i] <= '9')num += (A[i] - '0') * base;elsenum += (A[i] - 'A' + 10) * base; base *= B;}for (i = 0; i < 7; i++){ans[i] = 0;}if (A[0] == '0' && len == 1){printf("%-7d\n", 0);continue;}for (i = 0; num != 0; i++){if (i == 7){flag = 1;break;} ans[i] = num % C;num /= C;}if (flag){printf("  ERROR\n");continue;}i = 6;while (ans[i] == 0){printf(" ");i--;}while (i >= 0){if (ans[i] <= 9)printf("%d", ans[i]);else{if (ans[i] == 10)printf("A");else if (ans[i] == 11)printf("B");else if (ans[i] == 12)printf("C");else if (ans[i] == 13)printf("D");else if (ans[i] == 14)printf("E");elseprintf("F");}i--;}printf("\n");}return 0;
}