百练poj2972 确定进制
2010-05-08 21:34
190 查看
#include <iostream> #include <math.h> #include <stdlib.h> #include <string> #include <assert.h> #include <algorithm> using namespace std; long b2ten(char *x, int base) { int ret = 0; int len = strlen(x); for(int i = 0; i < len; i++) { if(x[i] - '0' >= base) return -1; ret *= base; ret += x[i] - '0'; } return (long)ret; } int main() { int n; char p[8], q[8], r[8]; long pAlgorithm, qAlgorithm, rAlgorithm; scanf("%d", &n); while(n--) { scanf("%s%s%s", p, q, r); int b; for(b = 2; b <= 16; b++) { pAlgorithm = b2ten(p, b); qAlgorithm = b2ten(q, b); rAlgorithm = b2ten(r, b); if(pAlgorithm == -1 || qAlgorithm == -1 || rAlgorithm == -1) continue; if(pAlgorithm * qAlgorithm == rAlgorithm) { printf("%d/n", b); break; } } if(b == 17) printf("0/n"); } }