Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Dãy Connell trong Python

Cho số n, tìm số hạng thứ n của dãy Connell. Dãy được xây dựng:

  1. Lấy 1 số lẻ đầu: 1
  2. Lấy 2 số chẵn tiếp: 2, 4
  3. Lấy 3 số lẻ tiếp: 5, 7, 9
  4. Lấy 4 số chẵn tiếp: 10, 12, 14, 16
  5. Và cứ thế...

Ví dụ: n = 12 → kết quả 21.

Các bước giải quyết

  • i = 1
  • Khi i*(i+1)//2 < n+1: i += 1
  • idx = i*(i+1)//2
  • num = i**2
  • Trả về num - 2*(idx - n - 1)

Ví dụ mã Python

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

Đầu vào

12

Đầu ra

21