/*
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
最新推荐文章于 2023-07-15 11:36:27 发布
本文介绍了一个使用 C++ 编写的程序,该程序读取一个整数并找出在这个基数下所有1到300之间的整数其平方为回文数的情况。通过将数字转换为指定进制下的字符串形式,并检查该字符串是否为回文来实现。
309

被折叠的 条评论
为什么被折叠?



