题目:
判断一个非负整数n的二进制表示是否为回文数
分析:
众所周知,判断回文数很简单,但是从十进制转换成二进制有点难想,所以就用到了,c++中特有的手段,位运算。
所谓的位运算:
n&1:这个代表取出n的二进制的最后一位;
n>>=1:这代表删除n的二进制的最右一位。
知道这些之后,做起题来就很简单了。
源码:(只写了函数部分)
class Solution {
public:
/**
* @param n: non-negative integer n.
* @return: return whether a binary representation of a non-negative integer n is a palindrome.
*/
bool isPalindrome(int n) {
// Write your code here
int arr[32];
int length=0;
do
{
arr[length++]=n&1;
n>>=1;
}while(n>0);
for(int i=0;i<length/2;i++)
{
if(arr[i]!=arr[length-1-i])
{
return false;
}
}
return true;
}
};
最后一次更新于2022-01-29
0 条评论