poj 1331一直wrong answer,不知道怎么回事

#include<stdio.h>#definemax(x,y)x>y?x:ylongtoTenary(intn,intB){longre=0,b=1;while(n!=... #include<stdio.h>
#define max(x,y) x>y?x:y
long toTenary(int n,int B){
long re=0,b=1;
while(n!=0){
re+=(n%10)*b;
n/=10;
b=b*B;
}
return re;
}
int getNary(int n){
int nary=0;
while(n!=0){
nary=max(nary,n%10);
n/=10;
}
return nary+1;
}
int main(){
int nCase;
scanf("%d",&nCase);
while(nCase--){
int flag=0;
int p,q,r;
scanf("%d%d%d",&p,&q,&r);
int nary=max(max(getNary(p),getNary(q)),getNary(r));
nary=max(2,nary);
for(int B=nary;B<=16;B++){
long p1=toTenary(p,B);
long q1=toTenary(q,B);
long r1=toTenary(r,B);
if(p1*q1==r1) { flag=B; break; }
}
printf("%d\n",flag);
}
return 0;
}
怎么会wrong answer啊
展开
 我来答
White_MouseYBZ
2017-03-09 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6595万
展开全部
就#define max(x,y) x>y?x:y这一句就可以让你wrong answer!而且好多结果也不会正确。改成#define max(x,y) ((x)>(y)?(x):(y))试试,其他没有细看,有问题续问……
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式