Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ผลรวมของสองจำนวนเต็มใน Python

สมมติว่าเรามีจำนวนเต็มสองจำนวน a และ b ภารกิจของเราคือหาผลรวมของสองจำนวนเต็มนี้ ข้อจำกัดหนึ่งคือ เราไม่สามารถใช้ตัวดำเนินการอย่าง + หรือ - ได้ เช่นถ้า a = 5 และ b = 7 ผลลัพธ์จะเป็น 12

วิธีการแก้ปัญหา

  • ในการแก้ เราจะใช้ตัวดำเนินการบิตเวส (bitwise logical operators)
  • ถ้า b = 0 ให้คืนค่า a
  • มิฉะนั้น เรียกฟังก์ชันผลรวมแบบเรียกซ้ำโดยให้ a XOR b และ a AND b หลังเลื่อนซ้ายผลลัพธ์หนึ่งครั้ง

ตัวอย่าง (Python)

เนื่องจากโค้ดต้นฉบับเป็น C++ นี่คือการแปลงเป็น Python:

class Solution:
    def getSum(self, a, b):
        # ใช้การดำเนินการบิตเวสเพื่อบวกโดยไม่ใช้ + หรือ -
        while b != 0:
            carry = a & b
            a = a ^ b
            b = carry << 1
        return a

ob1 = Solution()
print(ob1.getSum(5, 7))

อินพุต

a = 5 b = 7

เอาต์พุต

12