給一個十進制數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;
}