题解
用一个字典记录各个进制对应的数字,模拟一遍即可。
#include <bits/stdc++.h>
using namespace std;
int B;
const string dict = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string change_binary(int num) {
string res;
while(num) {
int r = num % B;
res.insert(res.begin(), dict[r]);
num /= B;
}
return res;
}
pair<bool, string> judge(string res) {
string tmp = res;
reverse(tmp.begin(), tmp.end());
return {tmp == res, res};
}
int main() {
cin >> B;
for(int i = 1; i <= 300; i++) {
auto res = judge(change_binary(i * i));
if(res.first) cout << change_binary(i) << " " << res.second << endl;
}
return 0;
}