Cho số n, in m bội số của n không dùng vòng lặp. Ở đây ta dùng hàm đệ quy (recursive function).
Ví dụ
Input: n = 15 Output: 15 10 5 0 5 10 15
Thuật toán
Bước 1: Cho n. Bước 2: Nếu đang quay về n và đã đến đó thì xong. Bước 3: Nếu đang đi về 0 hoặc âm. Bước 4: Nếu m lớn hơn 5, gọi đệ quy với flag True, ngược lại False. Bước 5: Nếu m không lớn hơn 5 thì flag là False.
Mã ví dụ
def printm(p, q, flag): print(q) if flag == False and p == q: return if flag: if q - 5 > 0: printm(p, q - 5, True) else: # Đệ quy với flag false printm(p, q - 5, False) else: # Nếu flag false printm(p, q + 5, False) # Mã điều khiển n = 15 printm(n, n, True)
Kết quả
15 10 5 0 5 10 15