/*
ID: america6
PROG: palsquare
LANG: C++11
*/
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
string trans(int base, int num) {
string tn;
while (num) {
int d = num%base;
if (d >= 0 && d <= 9) {
tn.insert(tn.begin(), '0'+d);
}
else if (d >= 10) {
tn.insert(tn.begin(), 'A'+d-10);
}
num/=base;
}
return tn;
}
bool pal(string tn) {
int i = 0, j = tn.size()-1;
while (i < j) {
if (tn[i] != tn[j]) {
return false;
}
i++;
j--;
}
return true;
}
int main() {
ofstream fout ("palsquare.out");
ifstream fin ("palsquare.in");
int a;
fin >> a;
for (int i = 1; i <= 300; ++i) {
string s = trans(a, i*i);
if (pal(s)) {
fout << trans(a, i) << " " << s << endl;
}
}
return 0;
}
Palindromic Squares
最新推荐文章于 2019-03-11 20:54:19 发布