Palindromic Squares
进制转换,遍历判断即可。
代码如下:
/*
ID: xhzdcyy1
PROB: palsquare
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include<map>
#define cin fin
#define cout fout
using namespace std;
ofstream fout ("palsquare.out");
ifstream fin ("palsquare.in");
string func(int a,int b){
string res="";
int tmp;
while(a){
tmp=a%b;
if(tmp<10){
res=char(tmp+'0')+res;
}
else{
res=char(tmp+'A'-10)+res;
}
a/=b;
}
return res;
}
bool check(string a){
int l=a.length();
for(int i=0;i<l/2;i++){
if(a[i]!=a[l-1-i]) return false;
}
return true;
}
int main()
{
int b;
cin>>b;
for(int i=1;i<=300;i++){
string tmp=func(i*i,b);
if(check(tmp)){
cout<<func(i,b)<<" "<<tmp<<endl;
}
}
return 0;
}