模拟题。
但是还算是稍微有点坑。
1,注意输出的是B进制数。
2,注意输出的时候进制超过10的输出字母。
越是简单的题目越容易犯错。
/*
ID: rowanha3
LANG: C++
TASK: palsquare
*/
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
int num[100000];
int nums[100000];
char nn[21]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K'};
void dos(int a,int b)
{
int c;
c=a;
int len=0;
a=a*a;
while(a)
{
num[len++]=a%b;
a=a/b;
}
int i;
for(i=0;i<=(len-1)/2;i++)
{
if(num[i]!=num[len-1-i])return ;
}
int lens=0;
while(c)
{
nums[lens++]=c%b;
c=c/b;
}
for(i=lens-1;i>=0;i--)
{
cout<<nn[nums[i]];
}
cout<<" ";
for(i=len-1;i>=0;i--)
{
cout<<nn[num[i]];
}
cout<<endl;
}
int main()
{
freopen("palsquare.in","r",stdin);
freopen("palsquare.out","w",stdout);
int n;
cin>>n;
int i;
for(i=1;i<=300;i++)
{
dos(i,n);
}
fclose(stdin);
fclose(stdout);
return 0;
}