社区讨论

求助各位大佬,C语言75分。想半天不知道哪里错了:(

B2141确定进制参与者 3已保存回复 18

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
18 条
当前快照
1 份
快照标识符
@mhphxmyg
此快照首次捕获于
2025/11/08 07:38
4 个月前
此快照最后确认于
2025/11/09 02:29
4 个月前
查看原帖
C
#include<stdio.h>
#include<math.h>
long long jinzhi(long long num, int jinzhi);//转换num(jinzhi)到十进制
int shumax(long long x);//最大数字
int main()
{
	long long p, q, r, a;
	scanf("%lld %lld %lld", &p, &q, &r);
	int m = 0;
	a = shumax(p) * 100 + shumax(q) * 10 + shumax(r);//输入pqr中最大数字为a
	for (int i = shumax(a) + 1; i <= 16; i++)
	{
		if (jinzhi(p, i) * jinzhi(q, i) == jinzhi(r, i))//循环最大数字+1到16进制
		{
			printf("%d\n", i);
			m++;
			break;
		}

	}
	if (m == 0)
	{
		printf("0\n");
	}
	return 0;
}
long long jinzhi(long long num, int jinzhi)
{
	int weishu;
	int zhuanhuan = 0;
	for (int i = 1; i <= 6; i++)
	{
		weishu = ((long long)num / (long long)pow(10, i - 1)) % 10;
		zhuanhuan += weishu * (pow(jinzhi, i - 1));
	}
	return zhuanhuan;
}
int shumax(long long x)
{
	int weishu;
	int max = 0;
	for (int i = 1; i <= 6; i++)
	{
		weishu = ((long long)x / (long long)pow(10, i - 1)) % 10;
		if (weishu > max)
		{
			max = weishu;
		}
	}
	return max;
}

回复

18 条回复,欢迎继续交流。

正在加载回复...