水题一道
虽然进制基数可能很大,但是直接做短除法就可以了。
#include<stdio.h>
#include<vector>
using namespace std;
int main()
{
int n,b;
scanf("%d %d",&n,&b);
if(n==0)
{
printf("Yes\n0\n");
return 0;
}
vector<int> v;
int x=n,y=0;
while(x!=0)
{
y=x%b;
v.push_back(y);
x/=b;
}
int l=v.size(),mid=v.size()/2,i,bl=1;
for(i=0;i<=mid;i++)
{
if(v[i]!=v[l-i-1])
{
bl=0;
break;
}
}
if(bl)
printf("Yes\n");
else
printf("No\n");
printf("%d",v[l-1]);
for(i=l-2;i>=0;i--)
printf(" %d",v[i]);
printf("\n");
return 0;
}