#include <bits/stdc++.h> using namespace std; //求一个整数n的x进制是否是回文 bool huiwen(int n,int x){ int a[100];//存储n的2进制 int k = 0,i; //k用来作为数组下标 while(n != 0){ a[k] = n % x; n = n / x; k++; } bool r = true; for(i = 0;i < k/2;i++){ if(a[i] != a[k-i-1]){ r = false; break; } } return r; } int main(){ int a[100],n,i; cin>>n; for(i = 0;i < n;i++){ cin>>a[i]; } for(i = 0;i < n;i++){ //如果a[i]不是回文,且a[i]的2进制或16进制是回文,则是半个回文数 if(huiwen(a[i],10) == false && (huiwen(a[i],2) == true || huiwen(a[i],16) == true)){ cout<<a[i]<<endl; } } return 0; } /************************************************************** Problem: 1386 User: admin Language: C++ Result: Accepted Time:10 ms Memory:2072 kb ****************************************************************/