Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình tìm chu vi tam giác lớn nhất bằng Python

Cho mảng nums độ dài dương. Chọn 3 giá trị làm độ dài 3 cạnh tam giác, tìm chu vi lớn nhất. Không tạo được tam giác → 0.

Ví dụ: [8,3,6,4,2,5] → sắp xếp [2,3,4,5,6,8]. Thử 8,6,5: 6+5>8 → chu vi 19.

Thuật toán giải quyết

  • Sắp xếp nums tăng dần.
  • Lấy 3 phần tử lớn nhất: a=pop(), b=pop(), c=pop() (a ≥ b ≥ c).
  • Khi b+c ≤ a (không thỏa bất đẳng thức tam giác):
    • Nếu mảng rỗng: trả về 0.
    • Dịch chuyển: a=b, b=c, c=pop() (thử bộ ba tiếp theo nhỏ hơn).
  • Trả về a+b+c.

Ví dụ triển khai

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))

Đầu vào

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

Đầu ra

19