P1206 [USACO1.2]回文平方数 Palindromic Squares - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc++.h>
using namespace std;
int b;
string toB(int n)//将十进制数n转成b进制,短除法
{
string ans;
while(n > 0)
{
int t = n % b;
if(t < 10) ans += t + '0';
else ans += t - 10 + 'A';
n /= b;
}
reverse(ans.begin(), ans.end());//倒过来
return ans;
}
bool isHuiwen(string s)
{
int len = s.length();
for(int i = 0; i < len / 2; i ++)
if(s[i] != s[len - 1 - i]) return false;
return true;
}
int main()
{
scanf("%d",&b);
for(int i = 1; i <= 300; i++)
{
string t = toB(i * i); //转成B进制的数
if(isHuiwen(t)) cout << toB(i) << ' ' << t << endl;
}
return 0;
}