Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 점프하여 n 위치에 도달할 수 있는지 확인하는 프로그램

<시간/>

1에서 n까지의 숫자 라인이 있다고 가정합니다. 처음에 우리는 위치 0에 있고, 한 단계 점프하여 1로 이동하고, 두 단계 점프하여 위치 3에 도달한 다음, 세 위치를 점프하여 위치 6에 도달하는 식입니다. 이를 유지하고 있는지 확인해야 n 위치에 도달할 수 있습니다.

따라서 입력이 n =21과 같으면 1+2+3+4+5+6 =21

이므로 출력은 True가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • j:=(1 + (1+8*n)의 제곱근) / 2
  • if |j - j의 정수 부분| <=0, 그럼
    • 참 반환
  • 그렇지 않으면 False를 반환

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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

입력

21

출력

True