题解:B4276 [蓝桥杯青少年组国赛 2023] 八进制回文平方数
FJ_EYoungOneC · · 题解
解题思路
考虑暴力,枚举
考虑优化,我们可以尝试枚举所有的平方数,再判断转换为八进制后是否一个回文数,时间复杂度
AC_Code
#include <iostream>
#include <algorithm>
using namespace std;
int n;
bool is_pali(string str)
{
string rts = str;
reverse(rts.begin(), rts.end());
return rts == str;
}
string get(int x)
{
string res;
while (x)
res += x % 8 + '0', x /= 8;
return res;
}
int main()
{
cin >> n;
for (int i = 1; i <= n / i; ++ i )
if (is_pali(get(i * i)))
cout << i * i << ' ';
return 0;
}