求救
  • 板块B2141 确定进制
  • 楼主osfly
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/11/7 12:46
  • 上次更新2023/11/4 01:11:20
查看原帖
求救
339299
osfly楼主2021/11/7 12:46

本人已AC,下面是同学的代码(C语言),90,WA#1、#14,看不出来错哪

(也许是我眼瞎

麻烦各位大佬了

#include<stdio.h>
int max(int a,int b)
{
	return a>b?a:b;
}
int change(int x,int base)//把一个以base为基数的数x转成十进制
{
    //可以先把x看作是十进制数
    int ans=0;
    int mult=1;
    int copy=x;
    for(int i=1;copy!=0;i++)
    {
        ans+=(copy%10)*mult;
        copy/=10;
        mult*=base;
    }
    return ans;
}
int main()
{
    int p,q,r;
	int l=0;
	int tmp;
    scanf("%d%d%d",&p,&q,&r);
    tmp=p;
	while(tmp) l=max(l,tmp%10),tmp/=10;
    tmp=q; 
	while(tmp) l=max(l,tmp%10),tmp/=10;
    tmp=r;
	while(tmp) l=max(l,tmp%10),tmp/=10;
    for(int k=l+1;k<=16;k++)
    {
        if(change(p,k)*change(q,k)==change(r,k))
        {
            printf("%d",k);
            return 0;
        }
    }
    printf("%d",0);
    return 0;
}
2021/11/7 12:46
加载中...