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

Chương trình kiểm tra người chơi đầu tiên có thể giành chiến thắng bằng cách đạt được tổng số tiền để nhắm mục tiêu bằng Python

Giả sử chúng ta có hai số k và mục tiêu. Bây giờ hãy coi Amal và Bimal đang chơi một trò chơi. Trong mỗi hiệp, Amal chọn một số từ 1 đến k để thêm vào tổng điểm ban đầu bắt đầu từ 0. Ai vượt qua tổng số để đạt được mục tiêu sẽ thắng. Amal luôn chơi trước, chúng tôi phải kiểm tra xem liệu anh ấy có thể thắng nếu cả hai đều chơi tối ưu.

Vì vậy, nếu đầu vào là k =5 target =10, thì đầu ra sẽ là True, như nếu Amal chọn 4 trước, sau đó cho dù Bimal chọn 1, 2, ... hoặc 5, Amal luôn có thể đạt 10 bằng cách chọn 5 tiếp theo.

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

  • nếu target% (k + 1) không phải là 0, thì
    • trả về true
  • nếu không thì
    • trả về false

Ví dụ

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

def solve(k, target):
   return target % (k + 1) != 0

k = 5
target = 10
print(solve(k, target))

Đầu vào

5, 10

Đầu ra

True