Giả sử chúng ta có một số n, chúng ta phải tìm số hạng thứ n của dãy Connell. Kết nối như sau:1. Lấy số nguyên lẻ đầu tiên:1 2. Lấy hai số nguyên chẵn tiếp theo 2, 4 3. Lấy ba số nguyên lẻ tiếp theo 5, 7, 9 4. Sau đó lấy bốn số nguyên chẵn tiếp theo 10, 12 , 14,16 Và như vậy.
Vì vậy, nếu đầu vào là 12, thì đầu ra sẽ là 21
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- i:=1
- while thương số của (i * (i + 1) / 2)
- i:=i + 1
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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