Cho số n, tìm số hạng thứ n của dãy Connell. Dãy được xây dựng:
- Lấy 1 số lẻ đầu: 1
- Lấy 2 số chẵn tiếp: 2, 4
- Lấy 3 số lẻ tiếp: 5, 7, 9
- Lấy 4 số chẵn tiếp: 10, 12, 14, 16
- 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)//2num = 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