代码
#include<bits/stdc++.h>
using namespace std;
bool Judge(int ans[], int num){
for(int i = 0; i < num / 2; i++) { // 判断是否是回文,只需要判断 第i位 第num-i-i位 是否相等
if(ans[i] != ans[num - 1 -i]) return false; // 只要有一次不同,就不是回文
}
return true;
}
int main()
{
int n, b;
scanf("%d %d", &n, &b);
int ans[31] = {0}, num = 0; // num:转换后的位数
do {
ans[num++] = n % b;
n /= b;
} while(n != 0);
bool flag = Judge(ans, num);
if(flag == true) printf("Yes\n");
else printf("No\n");
for(int i = num - 1; i >= 0; i--) {
printf("%d", ans[i]);
if(i != 0) printf(" "); // 最后一个数字后不输出空格
}
}