

请问最后两个测试点为什么不对啊?
原码如下
#include
int main()
{
int a[20]={0},b[20]={0},f,i;
long long n,t,m;
scanf("%lld",&n);
t=n;
for(i=0;t>0;i++)
{
a[i]=t%10;
t/=10;
}
for(int j=0;j
{
for(int k=0;k
{
if(a[k]>a[k+1])
{
f=a[k];a[k]=a[k+1];a[k+1]=f;
}
}
}
m=n*2;
t=m;
for(i=0;t>0;i++)
{
b[i]=t%10;
t/=10;
}
for(int j=0;j
{
for(int k=0;k
{
if(b[k]>b[k+1])
{
f=b[k];b[k]=b[k+1];b[k+1]=f;
}
}
}
for(f=0;f
{
if(a[f]!=b[f])
{
printf("No\n");
break;
}
if(f==i-1)
{
printf("Yes\n");
break;
}
}
printf("%lld",m);
return 0;
}我的思路是将输入的数和加倍的数的每一位数字分别用a,b两个数组记录并从大到小排序,最后判断a,b,两个数组是否完全一样