给一个十进制数n和一个进制b。判断n转为b进制后是不是回文。
并且用空格间隔打出这个数字。
vector真是太好用了,不定长数组、栈、队列什么的都能用他写。
//1019 判断回文,进制
vector<int> a;
bool jud(){
int t = a.size();
for(int i=0;i<t/2;i++){
if(a[i]!=a[t-i-1]) return false;
}
return true;
}
void tran(int n,int k){
a.clear();
while(n/k){
a.push_back(n%k);
n /= k;
}
a.push_back(n%k);
}
int main(){
int n,k;
scanf("%d %d",&n,&k);
tran(n,k);
int t = a.size();
if(jud()){
printf("Yes\n");
for(int i=t-1;i>=0;i--)
if(i) printf("%d ",a[i]);
else printf("%d",a[i]);
}else{
printf("No\n");
for(int i=t-1;i>=0;i--)
if(i) printf("%d ",a[i]);
else printf("%d",a[i]);
}
return 0;
}