回文数||(位运算)

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

};

目录
相关文章
|
5月前
玩转位运算
玩转位运算
|
C语言
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
C语言之回文数的求解。回文数一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。
178 0
|
23天前
|
机器学习/深度学习
位运算详解
本文介绍了位运算符及其基本操作,并通过几个例题详细解析了位运算的应用。内容包括左移`&lt;&lt;`、右移`&gt;&gt;`、按位取反`~`、与运算`&`、或运算`|`和异或运算`^`等运算符的使用方法。基本操作部分展示了如何检查和修改二进制位,以及异或运算的性质。例题部分则通过判定字符是否唯一、丢失的数字、两整数之和和消失的两个数字等问题,具体说明了位运算的实际应用技巧。
34 7
位运算详解
|
1月前
|
C语言 Python
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
20 3
|
4月前
9.回文数
9.回文数
|
5月前
|
算法 测试技术 C++
【位运算 拆位法】1835. 所有数对按位与结果的异或和
【位运算 拆位法】1835. 所有数对按位与结果的异或和
|
5月前
回文数
【1月更文挑战第20天】回文数。
28 0
|
5月前
leetcode:231. 2 的幂(位运算)
leetcode:231. 2 的幂(位运算)
23 0
|
5月前
[leetcode 数位运算] 2939. 最大异或乘积 M
[leetcode 数位运算] 2939. 最大异或乘积 M
|
存储 Java 程序员
“高端”的位运算
大家好,我是王有志。原计划迭代作为预备知识的收尾,不过在解2的幂和4的幂时,想到关于数字2的问题可以通过位运算去解决,因此补充了关于位运算的内容。
83 1