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:

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 đó.