东方博宜 1386 - 小丽找半个回文数
题目描述
小丽同学在编程中学到了回文数的概念,如果一个数正过来读和反过来读是同一个数,那么这个数就是回文数;比如:22、55、88、6666、121121、686686、1232112321 都是回文数,小丽发现,这样的数不算多。
于是小丽有个想法,如果这个数不是回文数,但这个数在 22 进制或者 1616 进制下是回文数,就算这个整数是半个回文数,比如 417417 并不是回文,但 417 对应的 16 进制数是 1A1 是回文数,因此 417 算半个回文数。
请你编程帮助小丽找符合条件的半个回文数。
输入
第一行是一个整数 n(5≤n≤100); 第二行是 n 个整数(这些整数都是[0,108] 之间的整数);
输出
所有符合条件的半个回文数,每行一个。
样例
输入
5
121 417 27 100 21
输出
417
27
21

思路:
1、函数部分:
定义函数,先将n转换成d进制。


d
进制的数是否是回文的,如果不是,直接return 0
或return false
,是,return 1
或return true
。

函数部分完整代码:

2、主函数部分:
1、读入,这句话是不是多余的

2、边读入每一个数x
边判断,
条件1:x
在10进制下不是回文数(满足半个回文数的条件)。

条件2:
分两种情况:
情况1:x
在2进制中是回文数。
情况2:x
在16进制中是回文数。
这两种情况满足一种即可。

3、满足条件,输出x
。

主函数部分完整代码:


完整代码:
