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

In dãy số không dùng vòng lặp trong Python


Trong bài viết này, chúng ta sẽ học về giải pháp cho bài toán cho trước:

Đề bài

Cho hai số N và K, bài toán của chúng ta là trừ số K từ N cho đến khi số N lớn hơn 0, một khi N trở thành âm hoặc 0 thì chúng ta bắt đầu cộng K vào nó cho đến khi số đó trở thành số N ban đầu.

Ví dụ

N = 10
K = 4

Kết quả

10 6 2 -2 2 6 10

Thuật toán

  • Gọi hàm đệ quy cho đến khi N lớn hơn 0 (mỗi lần gọi trừ K từ N).
  • Khi số trở thành âm hoặc 0, bắt đầu cộng K trong mỗi lần gọi cho đến khi số trở thành số ban đầu.
  • Ở đây chúng ta dùng một hàm cho cả cộng và trừ nhưng để chuyển đổi giữa cộng/trừ, dùng biến boolean flag.

Bây giờ hãy quan sát triển khai trong Python:

Ví dụ

def PrintNumber(N, Original, K, flag):
    # in số
    print(N, end=" ")
    # nếu số âm hoặc 0
    if (N <= 0):
        if flag == 0:
            flag = 1
        else:
            flag = 0
    if (N == Original and (not flag)):
        return
    # nếu flag True
    if (flag == True):
        PrintNumber(N - K, Original, K, flag)
        return
    if (not flag):
        PrintNumber(N + K, Original, K, flag)
        return
N = 10
K = 4
PrintNumber(N, N, K, True)

Kết quả

10 6 2 -2 2 6 10

Ở đây tất cả biến được khai báo trong không gian tên toàn cục như hình dưới đây:

In dãy số không dùng vòng lặp trong Python

Kết luận

Trong bài viết này, chúng ta đã học về thuật ngữ in dãy số không sử dụng bất kỳ cấu trúc lặp nào trong Python 3.x hoặc trước đó.