大佬求助,万分感谢!!!!
查看原帖
大佬求助,万分感谢!!!!
1050146
Patrick_xuan楼主2023/10/18 23:23
#include<stdio.h>
#include<math.h>
int zhuan(int p, int b)
{
	int sum = 0;
	int i = 0;
	int a;

	while (p > 0)
	{
		a = p % 10;
		sum = sum + a * pow(b, i++);
		p /= 10;
	}
	return sum;
}
int is(int p, int q, int r, int b)
{

	int num1 = zhuan(p, b);
	int num2 = zhuan(q, b);
	int num3 = zhuan(r, b);
	if (num1 * num2 == num3)
		return 1;
	else
		return 0;
}

int find(int p, int q, int r)
{
	int max1 = 2; 
	int max2 = 2; 
	int max3 = 2;
	while (p > 0)
	{
		int a1 = p % 10;
		p /= 10;
		if (a1 > max1)
			max1 = a1;
	}
	while (q > 0)
	{
		int a2 = q % 10;
		q /= 10;
		if (a2 > max2)
			max2 = a2;
	}
	while (r > 0)
	{
		int a3 = r % 10;
		r /= 10;
		if (a3 > max3)
			max3 = a3;
	}
	
	int MAX1 = (max1 > max2) ? max1 : max2;
	int MAX2 = (MAX1 > max2) ? MAX1 : max2;
	return MAX2 + 1;
}
int main()
{
	int p, q, r;
	int flag = 0;
	int count = 0;
	scanf("%d %d %d", &p, &q, &r);
	for (int b = 3; b <= 16; b++)
	{
		b = find(p, q, r);
		flag = is(p, q, r, b);
		if (flag)
		{
			count = b;
			break;
		}
	}
	if (flag)
		printf("%d", count);
	else
		printf("0");

	return 0;
}

2023/10/18 23:23
加载中...