要点主要是转化进制。
#include <iostream>
#include <stack>
using namespace std;
int main()
{
int n, b;
cin>>n>>b;
//转化数制
stack<int> MyStack;
while(n)
{
MyStack.push(n % b);
n /= b;
}
//把数字输入到char[]
int len = MyStack.size();
int *out = new int[len];
for(int i=0; i<len; i++)
{
out[i] = MyStack.top();
MyStack.pop();
}
//判断
bool flag = true;
for(int i=0; i<(len/2); i++)
{
if(out[i]!=out[len-1-i])
flag = false;
}
if(flag)
cout<<"Yes"<<endl;
else
cout<<"No"<<endl;
//输出
cout<<out[0];
for(int i=1; i<len; i++)
cout<<" "<<out[i];
system("pause");
return 0;
}