回文数||(位运算)

简介: 题目:判断一个非负整数n的二进制表示是否为回文数

题目:

判断一个非负整数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;
}

};

目录
相关文章
|
8月前
玩转位运算
玩转位运算
|
C语言
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
203 0
|
2月前
|
Java
回文数
本题要求判断一个整数是否为回文数,即正序和倒序读都相同。示例包括:121 (true), -121 (false), 10 (false)。进阶挑战是在不将整数转换为字符串的情况下解决问题。给出的 Java 代码通过将整数转换成字符串并反转比较实现功能。
30 0
|
7月前
9.回文数
9.回文数
|
8月前
|
算法 测试技术 C++
【位运算 拆位法】1835. 所有数对按位与结果的异或和
【位运算 拆位法】1835. 所有数对按位与结果的异或和
|
8月前
leetcode:231. 2 的幂(位运算)
leetcode:231. 2 的幂(位运算)
32 0
|
8月前
|
C++
C++系列-第1章顺序结构-8-求商求余和除法
C++系列-第1章顺序结构-8-求商求余和除法
|
存储
位运算及A+B
位运算及A+B
108 0
|
存储
【位运算】怕位运算?有我你何足畏惧
【位运算】怕位运算?有我你何足畏惧
86 0
|
C++
回文数(C++)
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。是一个回文整数,返回。
251 0