题解 | #牛的编号异或问题#

牛的编号异或问题

https://www.nowcoder.com/practice/b8139d2af0f64e6489f69cb173f170c1

考察的知识点:位运算;

解答方法分析:

  1. 调用另一个函数getResult,在这个函数中,根据输入的数取模4得到余数,然后根据不同的余数返回不同的结果。如果余数为0,则返回输入的数;如果余数为1,则返回1;如果余数为2,则返回输入的数加1;如果余数为3,则返回0。
  2. 在rangeBitwiseXor函数中,分别调用getResult函数得到left和right的对应结果,然后对这两个结果进行异或操作,并将结果返回。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param left int整型
     * @param right int整型
     * @return int整型
     */
    int getResult(int num) {
        int tmp = num % 4;
        if (tmp == 0) {
            return num;
        } else if (tmp == 1) {
            return 1;
        } else if (tmp == 2) {
            return num + 1;
        } else {
            return 0;
        }
    }
    int rangeBitwiseXor(int left, int right) {
        return getResult(left) ^ getResult(right);
    }
};

全部评论

相关推荐

07-15 00:33
江苏大学 Java
代码飞升:哈哈哈哈评论区三个打广告的
简历中的项目经历要怎么写
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务