题意:给出十进制的数字n,判断其在b进制下是否依旧是一个回文数字。
注意:十进制的n转换成b进制的数时,每次取余时得到的数可能大于9,因此用string存结果时会无法通过2、4两个测试点。
AC代码:
#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
const int N = 1e5+10;
int n, b;
vector<int> tmp, ans;
signed main()
{
cin >> n >> b;
while(n){
tmp.push_back(n%b);
n /= b;
}
ans = tmp;
reverse(ans.begin(), ans.end());
if(ans==tmp) cout << "Yes" << endl;
else cout << "No" << endl;
for(int i = 0; i < ans.size(); i ++){
if(i) cout << " ";
cout << ans[i];
}
return 0;
}