模拟题。
但是还算是稍微有点坑。
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;
}