本人已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;
}