/*
ID: xiao
TASK: palsquare
LANG: C++
*/
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
using namespace std;
ofstream fout("palsquare.out");
ifstream fin("palsquare.in");
int B;
string get_num(int bit_num){
char tmp;
string re = "";
if(bit_num<10)
tmp = '0' + bit_num;
else
tmp = 'A' + bit_num - 10;
re = re + tmp;
return re;
}
bool judge_pal(string str){
int str_len = str.size();
bool flag = true;
for(int i=0; i<str_len/2; i++){
if(str[i]!=str[str_len-1-i]){
flag = false;
break;
}
}
return flag;
}
string convert(int num, int base){
string rest = "";
char tmp;
while(num>0){
rest = rest + get_num(int(num%base));
num /= base;
}
reverse(rest.begin(),rest.end());
return rest;
}
int main(){
fin >> B;
for(int i=1; i<=300; i++){
if(judge_pal(convert(i*i,B)))
fout << convert(i,B) << " " << convert(i*i,B) << endl;
}
return 0;
}
USACO-Palindromic Squares
最新推荐文章于 2024-05-25 09:55:59 发布