SSOJ1073回文平方数[USACO]
3348+
作者:crxis 发布:2018-09-07 分类:枚举
题目大意:如果一个数的平方是回文数,那就输出来,对于二进制到二十进制,都是这样做。
题目描述
回文数是指从左向右念和从右向左念都一样的数。如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
解题思路
虽然进制超过9,会出现字母,但我们判断回文的时候,并不需要管太多,即使该位是2位数,也可以之间是否相等(代码3-9行)。
进制超过9,对输出有影响,不能之间%d,不然字母会输出错误。解决方法是将数字各位存入数组中,再写一个输出函数,倒序输出,分开小于10和大于9两种情况。
有判断回文和输出函数,接下来就是主函数的枚举,逐个数组枚举,如果平方是回文,那就倒序存入数组输出。