题目描述
如果一个十进制数转换为二进制后是回文的,则这个数称为二进制回文数。飞飞对二进制回文数十分感兴趣,他想请你帮他判断一个数字是否是二进制回文数。
输入
第一行输入一个整数T表示样例个数,第二行输入是十进制数字n,表示需要判断的数字。
输出
如果n是二进制回文数,则输出一行“Yes”,否则输出一行“No”。
样例输入
2
1
2
样例输出
Yes
No
提示
1<=T<=10000
1<=n<=10000
int main()
{
int T, n, t, i, len, a[16];
scanf("%d", &T);
while (T--)
{
len = 0;
scanf("%d", &n);
while (n)
{
t = n % 2;
a[len++] = t;
n /= 2;
}
len--;
for (i = 0; i <= len / 2; i++)
{
if (a[i] != a[len - i])
break;
}
if (i > len / 2)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}