Directly used the palindrome retrieval function of 1015, second answer
Ideas
Use a dynamic array to store each digit.
Instead, form a new digit to determine whether it is equal to the original digit.
#include <cstdio>
#include <cmath>
#include <vector>
using namespace std;
vector<int> num;
int reverse(int n,int r)
{
int result = 0;
do {
num.push_back(n%r);
n /= r;
}while (n != 0);
for (int i = num.size()-1; i >= 0 ; --i) {
result += num[num.size()-i-1]*pow(r,i);
}
return result;
}
int main()
{
int N,b;
scanf("%d %d",&N,&b);
int reverse_n = reverse(N,b);
if(reverse_n == N) printf("Yes\n");
else printf("No\n");
for (int i = num.size()-1; i >=0; --i)
{
printf("%d",num[i]);
if(i != 0) printf(" ");
}
}