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

โปรแกรมหาสามเหลี่ยมปริมณฑลที่ใหญ่ที่สุดโดยใช้ Python


สมมติว่าเรามีจำนวนอาร์เรย์ที่มีความยาวเป็นบวก เราต้องหาเส้นรอบรูปที่ใหญ่ที่สุดของสามเหลี่ยมโดยนำค่าสามค่าจากอาร์เรย์นั้นมา เมื่อเป็นไปไม่ได้ที่จะสร้างสามเหลี่ยมใดๆ ของพื้นที่ที่ไม่ใช่ศูนย์ ให้คืนค่า 0

ดังนั้น หากอินพุตเป็น [8,3,6,4,2,5] ผลลัพธ์จะเป็น 19

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

  • เรียงเลขรายการ

  • a :=ลบองค์ประกอบสุดท้ายออกจาก nums

  • b :=ลบองค์ประกอบสุดท้ายออกจาก nums

  • c :=ลบองค์ประกอบสุดท้ายออกจาก nums

  • ในขณะที่ b+c <=a ทำ

    • ถ้าไม่ใช่ nums ก็ไม่ใช่ศูนย์ แล้ว

      • คืนค่า 0

    • a :=b

    • b :=c

    • c :=ลบองค์ประกอบสุดท้ายออกจาก nums

  • คืนค่า a+b+c

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

ตัวอย่าง

def solve(nums):
   nums.sort()
   a, b, c = nums.pop(), nums.pop(), nums.pop()
   while b+c<=a:
      if not nums:
         return 0
      a, b, c = b, c, nums.pop()
   return a+b+c
nums = [8,3,6,4,2,5]
print(solve(nums))

อินพุต

[8,3,6,4,2,5]

ผลลัพธ์

19