FZU - 2102 Solve equation

题意大意:求满足 A = k*B + d 的最大的 k 值和 d 值,输出 k, d 的值


解题思路:A, B 由 C 进制转化过来的,最大的 K 值只要直接用 A / B,最大 d 值为 A % B


#include <cstdio>

int main() {
	int T;
	scanf("%d", &T);
	while (T--) {
		char a[20], b[20];
		int A = 0, B = 0, C;
		scanf("%s%s%d", a, b, &C);
		for (int i = 0; a[i] != '\0'; i++)
			A =  A * C + a[i] - (a[i] < 'a' ? '0' : 'a' - 10);
	
		for (int i = 0; b[i] != '\0'; i++)
			B =  B * C + b[i] - (b[i] < 'a' ? '0' : 'a' - 10);

		printf("(%d,%d)\n", A / B, A % B);
	}
	return 0;
}


你可能感兴趣的:(FZU - 2102 Solve equation)