回文判断+进制转换
作者:
巷港
,
2022-03-09 15:10:51
,
所有人可见
,
阅读 156
回文平方
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int b;
bool check(string num) //判断是否是回文数,用字符串好判断
{
for (int i=0,j=num.size()-1;i<j;i++,j--)
{
if (num[i]!=num[j]) return false;
}
return true;
}
char get(int n) //将数字转为字符
{
char ans;
if (n>=0&&n<=9) ans=n+'0';
else ans=n-10+'A';
return ans;
}
string base(int n, int b) //将十进制转化为b进制,用字符串好做
{
string s;
while (n)
{
s+=get(n%b);
n/=b;
}
reverse(s.begin(),s.end());
return s;
}
int main()
{
cin>>b;
for (int i=1;i<=300;i++)
{
string num=base(i*i,b);
if (check(num))
cout<<base(i,b)<<" "<<num<<endl;
}
return 0;
}