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

ตรวจสอบว่าผลคูณ Integer ใน Range [l, u] เป็น Positive, Negative หรือ Zero ด้วย Python

โจทย์: กำหนด Range [l, u] ตรวจสอบว่าผลคูณ Integer ทุกตัวใน Range เป็น Positive, Negative หรือ Zero

ตัวอย่าง

l = -8, u = -2 → Range: -8,-7,-6,-5,-4,-3,-2 → Product = -40320 → Negative

อัลกอริทึม (O(1) Math)

  1. ถ้า l > 0 และ u > 0 → Positive (ทั้งหมดบวก)
  2. ถ้า l ≤ 0 และ u ≥ 0 → Zero (มี 0 อยู่ใน Range)
  3. กรณี l < 0 และ u < 0 (ทั้งคู่อิด):
    • n = |l - u| + 1 (จำนวนตัว)
    • ถ้า n เป็น Even → Positive (Negative × Negative = Positive, จำนวนคู่)
    • ถ้า n เป็น Odd → Negative

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

def solve(l, u):
    if l > 0 and u > 0:
        return "Positive"
    elif l <= 0 and u >= 0:
        return "Zero"
    else:
        n = abs(l - u) + 1
        if n % 2 == 0:
            return "Positive"
        return "Negative"

l = -8
u = -2
print(solve(l, u))

Input / Output

Input: -8, -2
Output: Negative