这个在进制的时候注意当进制大于10的时候回出现一位是多于两位的,像之前那样用字符串保存就会出问题。
#include <string>
#include <iostream>
#include <vector>
#include <cstdlib>
using namespace std;
vector <int> s;
int main() {
int num, b;
cin >> num >> b;
int temp = num;
int digit = 0;
if (temp == 0) {
s.push_back(0);
}
while (temp != 0) {
digit = temp % b;
s.push_back(digit);
temp /= b;
}
bool tag = true;
int len = s.size();
int times = len / 2;
for (int i = 0; i < times; i++) {
if (s[i] != s[len - i - 1])
tag = false;
}
if (tag)
cout << "Yes" << endl;
else
cout << "No" << endl;
for (int i = len - 1; i > 0; i--) {
cout << s[i] << " ";
}
cout << s[0] << endl;
system("pause");
return 0;
}