สมมติว่าเรามีจำนวนเต็ม n และจำนวนเต็มเริ่มต้นอีกจำนวนหนึ่ง เราต้องสร้างอาร์เรย์ที่เรียกว่า nums โดยที่ nums[i] =start + 2*i (ผมเริ่มจาก 0) และ n คือขนาดของ nums จากนั้นหา XOR ระดับบิตขององค์ประกอบทั้งหมดของ nums
ดังนั้น ถ้าอินพุตเป็น n =6 start =2 เอาต์พุตจะเป็น 14 เพราะอาร์เรย์จะเป็นแบบ [2+2*0, 2+2*1, ... 2+2*5] =[2,4,6,8,10,12] ดังนั้น XOR ของแต่ละองค์ประกอบที่มีอยู่ในอาร์เรย์คือ 14
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
นับ :=เริ่ม
-
ในขณะที่ n-1> 0 ทำ
-
count :=นับ XOR 2 + เริ่ม
-
n :=n - 1
-
start :=start + 2
-
-
จำนวนคืน
ตัวอย่าง (Python)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(n, start): count = start while n-1 > 0: count ^= 2 + start n -= 1 start += 2 return count n = 6 start = 2 print(solve(n, start))
อินพุต
6, 2
ผลลัพธ์
14