×

# How to find XOR of all the elements in given range?

 0 given to integers A and B A<=B find XOR of all the elements between them. Expected Complexity: logN asked 10 Sep '16, 12:36 46●4●9 accept rate: 50%

 2 Let us denote $f(n) = 1 \oplus 2 \oplus 3 \oplus \dots \oplus n$, where $\oplus$ denotes XOR operation then XOR of all numbers between $A$ and $B$ can be represented by $f(B) \oplus f(A-1)$, because $x \oplus x = 0$ Now we can find out easily that, $$f(n) = \left\{\begin{array}{@{}lr@{}} n, & \text{n mod 4 = 0}\\ 1, & \text{n mod 4 = 1}\\ n+1, & \text{n mod 4 = 2}\\ 0, & \text{n mod 4 = 3} \end{array}\right\}$$ Time Complexity - $O(1)$ answered 10 Sep '16, 16:42 20 accept rate: 0%
 0 @drcoderji No, it is not always true. If A=2, B=3, then your answer will be 5. But 2^3 = 1. answered 10 Sep '16, 13:52 46●2 accept rate: 20%
 0 Similar question in stackoverflow. Hope it helps. happy coding. link text answered 02 Oct '16, 16:28 3★smsubham 675●2●16 accept rate: 15%
 0 @jaydeep97 -its right. The answer will be f(3)^f(1)=0^1=1. answered 02 Oct '16, 19:52 6★ankesh18 627●1●11 accept rate: 7%
 0 can anybody help me if the array is given and range is also given .. if array is 1 2 7 4 5 a=3 b=4 ans should be 3 but above solution gives 7 ans. answered 23 Jul '17, 20:02 2●1 accept rate: 0% in this question range means all the no. in that range. suppose a=3 b=7 then this means we have to find 3^4^5^6^7. (23 Jul '17, 22:38) arpit7281★
 toggle preview community wiki:
Preview

By Email:

Markdown Basics

• *italic* or _italic_
• **bold** or __bold__
• image?![alt text](/path/img.jpg "title")
• numbered list: 1. Foo 2. Bar
• to add a line break simply add two spaces to where you would like the new line to be.
• basic HTML tags are also supported
• mathemetical formulas in Latex between \$ symbol

Question tags:

×2,167
×1,656
×1,404
×303

question asked: 10 Sep '16, 12:36

question was seen: 8,793 times

last updated: 23 Jul '17, 20:02