#include <iostream>
#include <math.h>
using namespace std;
char num[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};
//判断数字大于10等于是的情况和小于10的情况
void cnum(int x) {
if (x <= 9)
cout << x;
else
cout << num[x - 10];
}
//用短除法进行进制转换
void N_octal(int octal, int num) {
int a[10], sum = 0, res = 0;
for (int i = 1; num > 0; i ++) {
a[i] = num % octal;
res ++;
num /= octal;
}
int tem = res - 1;
for (int i = res; i > 0; i--) {
cnum(a[i]);
}
}
//判断是不是回文
bool is_palindrome(int B, int n) {
int sum = 0, a[20];
for (int i = 0; n > 0; i++,sum ++) {
a[i] = n % B;
n /= B;
}
sum --;
for (int i = 0, j = sum; i < j; i ++, j --) {
if (a[i] != a[j])
return false;
}
return true;
}
int main() {
int B, n;
cin >> B;
for (int i = 1; i <= 300; i ++) {
if(is_palindrome(B, i*i)){
N_octal(B,i);
cout <<' ';
N_octal(B,i*i);
cout << endl;
}
}
return 0;
}
P558 回文平方(3月24日)
最新推荐文章于 2024-09-10 19:16:08 发布