Given an integer n and an integer start.
Define an array nums where nums[i] = start + 2*i (0-indexed) and n == nums.length.
Return the bitwise XOR of all elements of nums.
 
Example 1:
Input: n = 5, start = 0
Output: 8
Explanation: Array nums is equal to [0, 2, 4, 6, 8] where (0 ^ 2 ^ 4 ^ 6 ^ 8) = 8.
Where "^" corresponds to bitwise XOR operator.

Example 2:
Input: n = 4, start = 3
Output: 8
Explanation: Array nums is equal to [3, 5, 7, 9] where (3 ^ 5 ^ 7 ^ 9) = 8.
Example 3:
Input: n = 1, start = 7
Output: 7

Example 4:
Input: n = 10, start = 5
Output: 2

 
Constraints:

1 <= n <= 1000
0 <= start <= 1000
n == nums.length

Difficulty: introductory

Starter code:

class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        

Solutions:
class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        
        if n == 0:
            return 0
        
        i = 1
        res = start
        while i != n:
            res = res ^ (2*i + start)
            i += 1
        return res


class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        nums = [0]*n
        res= 0
        for i in range(n):
            nums[i] = start + 2*i
            res = res ^ nums[i]
        return res


import functools


class Solution:
    
    
    def gen_array(self, n, s):
        for x in range(n):
            yield s + x * 2
            
            
    def xorOperation(self, n: int, start: int) -> int:        
        return functools.reduce(lambda a, b: a^b, self.gen_array(n, start))

class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        
        array = [start+2*i for i in range(n)]
        res = start
        for i in range (1,len(array)):
            res ^=array[i]
            
        return res


class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        xor=0
        for i in range(n):
            xor^=start+(2*i)
        return xor


class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        
        a = start
        
        for i in range(1,n):
            
            a = a^(start+2*i)
            
        return a
            


class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        res = 0
        for i in range(n):
            res ^= start + 2 * i
        return res

class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        res = start
        for i in range(1,n):
            res ^= i*2+start
        return res

class Solution:
    def xorOperation(self, n: int, start: int) -> int:
        nums = []
        for i in range(n):
            nums.append(start + (2 * i))
        result = 0
        for n in nums:
            result = result ^ n
        return result