回文数||(位运算)

简介: 题目:判断一个非负整数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;
}

};

目录
相关文章
|
1天前
玩转位运算
玩转位运算
|
7月前
|
存储 Java
一篇搞定位运算(&、|、^、~、>>、<<、>>>)
我们最了解的就是十进制 , 除了十进制 , 还有二进制 , 六进制 , 八进制等等 , 由于位运算操作就是二进制 , 所以我们主要来说一下二进制 , 十进制的个位有(0~9)这几个数字 , 而二进制也相同 , 二进制的个位上只有0和1
34 0
|
7月前
|
C语言
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
|
1天前
|
算法 测试技术 C++
【位运算 拆位法】1835. 所有数对按位与结果的异或和
【位运算 拆位法】1835. 所有数对按位与结果的异或和
|
1天前
回文数
【1月更文挑战第20天】回文数。
13 0
|
1天前
leetcode:231. 2 的幂(位运算)
leetcode:231. 2 的幂(位运算)
11 0
|
1天前
[leetcode 数位运算] 2939. 最大异或乘积 M
[leetcode 数位运算] 2939. 最大异或乘积 M
|
10月前
|
存储
位运算及A+B
位运算及A+B
|
11月前
|
存储 Java 程序员
“高端”的位运算
大家好,我是王有志。原计划迭代作为预备知识的收尾,不过在解2的幂和4的幂时,想到关于数字2的问题可以通过位运算去解决,因此补充了关于位运算的内容。
62 1
|
存储
【位运算】怕位运算?有我你何足畏惧
【位运算】怕位运算?有我你何足畏惧
59 0