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

ค้นหาว่าสามารถจัดถ้วยและชั้นวางอย่างเรียบร้อยใน Python ได้หรือไม่


สมมติว่าเรามีถ้วยที่แตกต่างกันสามประเภทในอาร์เรย์ p และจานรองในจำนวนชั้นวางอาร์เรย์ q และ m เราต้องตรวจสอบว่าสามารถจัดถ้วยและชั้นวางได้อย่างเรียบร้อยหรือไม่

เราสามารถพูดได้ว่าการจัดถ้วยและจานรองจะเรียบร้อยหากเป็นไปตามเงื่อนไขเหล่านี้ - 1. ไม่มีชั้นวางใดที่สามารถใส่ทั้งถ้วยและจานรองได้ 2. ตัวเองมีได้ไม่เกิน 5 ถ้วย 3. ตัวเองมีจานรองได้สูงสุด 10 ใบ

ดังนั้น หากอินพุตเท่ากับ p =[4, 3, 7] q =[5, 9, 10] m =11 ผลลัพธ์จะเป็น True เนื่องจากจำนวนถ้วยทั้งหมด =14 จำเป็นต้องมี 3 ชั้นวาง จานรองทั้งหมด =24 ต้องการ 3 ชั้น ดังนั้น ชั้นวางที่ต้องการทั้งหมด =3 + 3 =6 ซึ่งน้อยกว่าจำนวนชั้นวางที่กำหนด m.

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • sum_p :=0, sum_q :=0

  • สำหรับฉันในช่วง 0 ถึงขนาด p ทำ

    • sum_p :=sum_p + p[i]

  • สำหรับฉันในช่วง 0 ถึงขนาด q ทำ

    • sum_q :=sum_q + q[i]

  • m_p :=(sum_p + 4) / 5

  • m_q :=(sum_q + 9) / 10

  • ถ้า m_p + m_q <=m แล้ว

    • คืนค่า True

  • มิฉะนั้น

    • คืนค่าเท็จ

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

def is_valid(p, q, m):
   sum_p = 0
   sum_q = 0
   for i in range(0, len(p)):
      sum_p += p[i]
   for i in range(0,len(q)):
      sum_q += q[i]
   m_p = (sum_p + 5 - 1) / 5
   m_q = (sum_q + 10 - 1) / 10
   if(m_p + m_q <= m):
      return True
   else:
      return False
p = [4, 3, 7]
q = [5, 9, 10]
m = 11

print(is_valid(p ,q ,m))

อินพุต

[4, 3, 7], [5, 9, 10], 11

ผลลัพธ์

True