社区讨论
求助各位大佬,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 条回复,欢迎继续交流。
正在加载回复...