Tuyến số 1..n. Bắt đầu 0, nhảy 1 đến 1, nhảy 2 đến 3, nhảy 3 đến 6... (nhảy bước i ở lần thứ i). Kiểm tra có đến đúng n không.
Công thức
Tổng 1+2+...+k = k(k+1)/2 = n. Giải k = (-1 + √(1+8n))/2. Nếu k nguyên → True.
Ví dụ
from math import sqrt
def solve(n):
j = (1 + sqrt(1 + 8 * n)) / 2
return abs(j - int(j)) <= 1e-9
print(solve(21)) # Output: True
Giải thích
21 = 1+2+3+4+5+6 → k=6 nguyên → True.