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

ตรวจสอบว่าอาร์เรย์มีสมาชิกเท่ากับผลคูณของสมาชิกอื่นหรือไม่ ใน Python


ปัญหา

ให้อาร์เรย์ nums ตรวจสอบว่ามีสมาชิกตัวใดตัวหนึ่งที่มีค่าเท่ากับผลคูณของสมาชิกอื่นทั้งหมดหรือไม่

ตัวอย่าง

nums = [3,2,24,4,1] → 24 = 3×2×4×1 → True

แนวคิดการแก้ปัญหา

  1. คำนวณผลคูณทั้งหมด mul
  2. สำหรับแต่ละสมาชิก x ตรวจสอบว่า x == mul / x (คือ x² == mul)

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

def solve(nums):
    mul = 1
    for x in nums:
        mul *= x
    for x in nums:
        if x * x == mul:
            return True
    return False

print(solve([3, 2, 24, 4, 1]))  # True

อินพุต / เอาต์พุต

Input:  [3,2,24,4,1]
Output: True