题目描述
回文数是指从左向右念和从右像做念都一样的数。如12321就是一个典型的回文数。
给定一个进制B(2<=B<=20十进制),输出所有的大于等于1小于等于300且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等。
输入
共一行,一个单独的整数B(B用十进制表示)。
输出
每行两个数字,第二个数是第一个数的平方,且第二个数是回文数。(注意:这两个数都应该在B那个进制下)
样例输入
10
样例输出
1 1 2 4 3 9 11 121 22 484 26 676 101 10201 111 12321 121 14641 202 40804 212 44944 264 69696
模拟题,注意边界就行。。。
好淼的一题
#include <bits/stdc++.h>
using namespace std;
int n, t, s;
char a[256];
void shu(int m)
{
int i = 0;
t = 0;
while (m != 0)
{
if (m % n < 10)
a[i] = '0' + m % n;
else
a[i] = 'A' + m % n - 10;
m = m / n;
t++;
i++;
}
for (int i = 0; i < t / 2; i++)
{
swap(a[i], a[t - i - 1]);
}
}
bool hui()
{
for (int i = 0; i < t / 2; i++)
{
if (a[i] != a[t - i - 1])
return 0;
}
return 1;
}
void f()
{
for (int i = 255; i >

这道题目要求求解在2到20进制之间,所有1到300之间的数,其平方在给定进制下表现为回文数。输入为一个整数B(十进制),输出满足条件的数及其平方。题目提供样例输入和输出,并提示这是一道模拟题,需要注意边界条件的处理。
最低0.47元/天 解锁文章
1293

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



