题解 | #牛的编号异或问题#
牛的编号异或问题
https://www.nowcoder.com/practice/b8139d2af0f64e6489f69cb173f170c1
考察的知识点:位运算;
解答方法分析:
- 调用另一个函数getResult,在这个函数中,根据输入的数取模4得到余数,然后根据不同的余数返回不同的结果。如果余数为0,则返回输入的数;如果余数为1,则返回1;如果余数为2,则返回输入的数加1;如果余数为3,则返回0。
- 在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); } };