ZZULIOJ 2385: E

题目描述
小L比较喜欢研究奇妙的数字,有一天他发现了一类特殊的数,他将这些数命名为“小L数”。

“小L数”的定义:数字的二进制是一个回文数。

比如:

1 (1)2

3 (11) 2

5 (101)2

现在给出一个数字N,请判断他是不是小L数。

输入
第一行为一个正整数T,代表测试数据的数量(1<=T<=106)。

接下来T行,每行为一个十进制数N(1<=N<=230)。

输出
对于每一个N,若N是小L数,则输出yes,否则输出no。

样例输入3
1
2
3

样例输出yes
no
yes

#include<stdio.h>
int main(){
 int t,n,x,flag=0,i=0;
 int a[33];
 scanf("%d",&t);
 while(t--){
  x=0; flag=0;
  scanf("%d",&n);
  while(n!=0){
  a[x++]=n%2;
  n/=2;
 }
 for(i=0;i<x;i++)
  if(a[i]!=a[x-1-i])         //判断是否为回文数
  {
  flag=1;
  break;
  }
 if(flag==0)
 printf("yes\n");
 else printf("no\n");
 }
 return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43731933/article/details/84350183