📄 palsqure.cpp
字号:
/*
ID: day_bea3
PROG: palsquare
LANG: C++
*/#include <fstream>
#include <iostream>
#include <assert.h>
using namespace std;
const int MAXLEN = 17;
int translate(const int base, const int source, char rel[])
{
int i = 0;
int src =source;
while (src > 0)
{
rel[i] = src % base + 48;
if (rel[i] > '9')
{
rel[i] += 7;
}
src /= base;
i++;
}
int j = 0;
char temp = '\0';
for (; j < i / 2; j++)
{
temp = rel[j];
rel[j] = rel[i - j - 1];
rel[i - j - 1] = temp;
}
return i;
}
bool IsPalindromic(char rel[], int len)
{
int i = 0;
for (; i < len/2; i++)
{
if (rel[i] != rel[len - i -1])
{
return false;
}
}
return true;
}
bool GotIt(int base)
{
char num[MAXLEN] = {0};
char numsqure[MAXLEN] = {0};
ofstream fout("palsquare.out");
assert(fout);
int len = 0;
int i = 0;
for (i = 1; i <= 300; i++)
{
len = translate(base, i * i, numsqure);
if (IsPalindromic(numsqure, len))
{
translate(base, i, num);
fout<<num<<" "<<numsqure<<"\n";
}
}
fout.close();
return false;
}
int main()
{
ifstream fin("palsquare.in");
assert(fin);
int base = 0;
fin>>base;
assert(base >= 2 && base <= 20);
GotIt(base);
fin.close();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -