思路:
先把十进制转换为r进制,转换的过程中,从逆向求该进制的十进制数,如果逆向结果与原数结果一致,则说明这个数字对称。
#include<cstdio>
int main(){
int num,r;
scanf("%d%d",&num,&r);
int arr[22];
int k=0,tmp=num,sum=0;
do{
arr[k]=num%r;
num=num/r;
sum=sum*r+arr[k];
k++;
}while(num!=0);
if(sum == tmp) printf("Yes\n");
else printf("No\n");
for(int j=k-1;j>=0;j--){
printf(j>0?"%d ":"%d",arr[j]);
}
return 0;
}