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啊 展开
#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啊 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询