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

Chương trình để kiểm tra chúng ta có thể đạt đến vị trí n bằng cách nhảy hay không bằng Python

Giả sử có một dãy số từ 1 đến n. Lúc đầu, chúng ta đang ở vị trí 0, nhảy một bước để đến 1, sau đó nhảy hai bước để đạt được vị trí 3, sau đó nhảy ba vị trí để đạt được ở vị trí 6 và cứ tiếp tục như vậy. Chúng tôi phải kiểm tra xem nếu duy trì điều này, chúng tôi có thể đạt được ở vị trí thứ n hay không.

Vì vậy, nếu đầu vào là n =21, thì đầu ra sẽ là Đúng, vì 1 + 2 + 3 + 4 + 5 + 6 =21

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

  • j:=(1 + căn bậc hai của (1 + 8 * n)) / 2
  • if | j - int một phần của j | <=0, rồi đến
    • 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 -

from math import sqrt
def solve(n):
   j=(1+sqrt(1+8*n))/2
   if abs(j-int(j))<=0:
      return True
   else:
      return False

n = 21
print(solve(n))

Đầu vào

21

Đầu ra

True