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

Chương trình kiểm tra có thể nhảy đến vị trí n hay không trong Python

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.