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

Python의 코넬 시퀀스

<시간/>

숫자 n이 있다고 가정하면 Connell 시퀀스의 n번째 항을 찾아야 합니다. Connellsequence는 다음과 같습니다. 1. 첫 번째 홀수 정수 가져오기:1 2. 다음 두 개의 짝수 정수 가져오기 2, 4 3. 다음 세 개의 홀수 정수 가져오기 5, 7, 9 4. 그 후 다음 네 개의 짝수 정수 가져오기 10, 12 , 14,16 등등.

따라서 입력이 12와 같으면 출력은 21이 됩니다.

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

  • i :=1
  • (i *(i + 1) / 2)
  • 나는 :=나는 + 1
  • idx :=i *(i + 1) / 2, 몫만 사용
  • num :=i^2
  • 반환 번호 - 2 *(idx - n - 1)
  • 이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

    예시

    class Solution:
       def solve(self, n):
          i = 1
          while (i * (i + 1) // 2) < n + 1:
             i += 1
          idx = i * (i + 1) // 2
          num = i**2
       return num - 2 * (idx - n - 1)
    ob = Solution()
    print(ob.solve(12))

    입력

    12

    출력

    21