AcWing 1346. 回文平方
原题链接
简单
作者:
尤雨溪
,
2021-01-13 11:15:31
,
所有人可见
,
阅读 534
(暴力枚举)
C++ 代码
#include <bits/stdc++.h>
using namespace std;
char p[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'}; //存储二十进制
int k;
bool check(string x) { //判断是否是回文数,回文数即正读反读都一样的数
if(x.size()==1) return true;
int l=0,r=x.size()-1;
while(l <= r) {
if(x[l]!=x[r]) return false;
l++,r--;
}
return true;
}
string tran(int x) { //进制转换,除k取余法
string ans;
while(x) {
ans = p[x%k]+ans;
x/=k;
}
return ans;
}
int main() {
cin >> k;
for (int i = 1; i <= 300; i ++) {
string x = tran(i*i);
if(check(x)) cout<<tran(i)<<" "<<x<<endl;
}
return 0;
}