Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm người chiến thắng trò chơi loại bỏ mảng bằng Python

Giả sử Amal và Bimal đang chơi một trò chơi trong đó họ có một mảng A với một số con số. Luật chơi như sau

  • Số thập phân sẽ luôn bắt đầu
  • Trong mỗi lượt, một người chơi sẽ xóa phần tử tối đa khỏi mảng và tất cả các phần tử khác có ở bên phải phần tử đã xóa cũng sẽ bị xóa.
  • Họ chơi xen kẽ
  • Người chơi loại bỏ tất cả các yếu tố còn lại, người đó sẽ thắng trò chơi.

Vì vậy, nếu đầu vào giống như nums =[5,2,6,3,4], thì đầu ra sẽ là Amal vì lúc đầu Bimal sẽ loại bỏ [6,3,4] nên mảng sẽ là [5,2], thì Amal sẽ loại bỏ tất cả, vì vậy anh ấy sẽ là người chiến thắng.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • tối đa:=-1
  • số lượng:=0
  • đối với mỗi a trong nums, thực hiện
    • nếu a> tối đa khác 0, thì
      • count:=count + 1
      • tối đa:=a
  • nếu số lượng mod 2 giống 0, thì
    • trả lại "Amal"
  • trả về "Số thập phân"

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def solve(nums):
   maximum = -1
   count = 0
   for a in nums:
      if a > maximum:
         count += 1
         maximum = a
   if count % 2 == 0:
      return "Amal"
   return "Bimal"

nums = [5,2,6,3,4]
print(solve(nums))

Đầu vào

[5,2,6,3,4]

Đầu ra

Amal