进制转换+回文数判断
#include <stdio.h>
#include <cstring>
int list[50];
//判断是否是回文数
bool isPaNum(int list[], int size)
{
for(int i = 0; i < size/2; i++)
if(list[i] != list[size-1-i])
return false;
return true;
}
int main()
{
int n, d;
while(scanf("%d %d", &n, &d) != EOF)
{
memset(list, 0, sizeof(list));
int size = 0, tmp = n;
do{
list[size++] = tmp % d;
tmp /= d;
}while(tmp);
if(isPaNum(list, size))
printf("Yes\n");
else
printf("No\n");
for(int i = size-1; i >= 0; i--)
if(i == size-1)
printf("%d", list[i]);
else
printf(" %d", list[i]);
printf("\n");
}
return 0;
}