#include <bits/stdc++.h>
using namespace std;// 判断x应该是数字还是字母
char get(int x) {
if (x <= 9)
return x + '0';return x - 10 + 'A';
}// 进制转化,返回string
string base(int n, int b) {
string num;while (n) {
num += get(n % b);
n /= b;
}// 辗转相除法之后,逆序
reverse(num.begin(), num.end());
return num;
}// 判断是否是回文数
bool check(string num) {
for (int i = 0, j = num.size() - 1; i < j; i ++, j -- )
if (num[i] != num[j])
return false;return true;
}int main() {
int b;
cin >> b;for (int i = 1; i <= 300; i ++ ) {
// 先进制转化
string num = base(i * i, b);// 如果是回文数,则输出
if (check(num))
cout << base(i, b) << ' ' << num << endl;
}return 0;
}
每日一题回文平方
最新推荐文章于 2024-07-09 22:37:42 发布