又是熟悉的毒瘤进制转换题(雾)
注意点:
- 结果均在(b)进制下表示
- 十六进制注意(10 sim 15)用(A sim F)表示嗷
int b;
char get(int x)
{
if(x>=0 && x<=9) return '0'+x;
return 'A'+x-10;
}
string base(int x)
{
string res;
while(x)
{
res+=get(x%b);
x/=b;
}
reverse(res.begin(),res.end());
return res;
}
bool check(string s)
{
bool ok=true;
int len = s.size();
for(int i=0;i<len/2;i++)
if(s[i] != s[len-1-i])
return false;
return true;
}
int main()
{
cin>>b;
for(int i=1;i<=300;i++)
{
string res=base(i*i);
if(check(res))
cout<<base(i)<<' '<<res<<endl;
}
//system("pause");
return 0;
}