输入
5
121 417 27 100 21
输出
417
27
21
代码实现:
#include <bits/stdc++.h>
using namespace std;
bool huiwen(int n,int d){
bool f=true;//假设是回文
int a[110],k=0;
while(n!=0){
a[k]=n%d;//取余把每一位存进数组
k++;//k:表示总共存进数的个数
n=n/d;
}
//判断回文,循环数组的一半,若不是返回f
for(int i=0;i<k/2;i++){
if(a[i]!=a[k-i-1]){
f=false;
break;
}
}
return f;
}
int main(){
int n,a[110];
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
//题中说明了十进制不是回文但在二进制或十六进制是回文
if(!huiwen(a[i],10)&&huiwen(a[i],2)==1||huiwen(a[i],16)==1){
cout<<a[i]<<endl;
}
}
}