这题就是简单的模拟题,为了确保不越界,我使用了long long
要注意加入0的判断!
#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { long long a, b; cin>>a>>b; if(a == 0) { cout<<"Yes"<<endl<<0<<endl; return 0; } vector<long long> v; while (a != 0) { v.push_back(a % b); a /= b; } bool flag = true; int tmp = v.size()/2; while (tmp--) { if(v[tmp] != v[v.size() - tmp - 1]) { flag = false; break; } } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; reverse(v.begin(), v.end()); for(int i = 0; i < v.size(); i++) { if(i == 0) cout<<v[i]; else cout<<" "<<v[i]; } cout<<endl; }