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

หาค่าที่หายไปจากสมการ a + b = c ใน Python

หาตัวเลขที่หายไปในสมการ a + b = c

กำหนดสมการ a + b = c ที่ตัวเลขหนึ่งตัวหายไป (แทนด้วย ?) หาค่าที่หายไป

ตัวอย่าง: "? + 4 = 9" → 5, "6 + 8 = ?" → 14

วิธีแก้ง่ายๆ

  1. ลบช่องว่าง และแทน + และ = ด้วยคอมมา
  2. Split ด้วยคอมมาได้ 3 ส่วน
  3. หาตำแหน่งที่ไม่ใช่ตัวเลข (คือ ?)
  4. คำนวณย้อนกลับ:
    • หายตัวสุดท้าย (c): a + b
    • หายตัวกลาง (b): c - a
    • หายตัวแรก (a): c - b

โค้ดตัวอย่าง Python


def find_missing(eq):
    eq = eq.replace(' ', '').replace('=', ',').replace('+', ',')
    parts = eq.split(',')
    idx = next(i for i, p in enumerate(parts) if not p.isdigit())
    a, b, c = map(int, [p for p in parts if p.isdigit()])
    if idx == 2: return a + b
    if idx == 1: return c - a
    return c - b

print(find_missing('6 + 8 = ?'))   # 14
print(find_missing('? + 8 = 20'))  # 12
print(find_missing('5 + ? = 15'))  # 10