[Buổi 14][Củng cố đệ quy][HW] Bài 1: In ngược từ n về 1
In ngược từ n về 1
Bối cảnh
Một bộ điều khiển cần phát tín hiệu đếm lùi từ mức n về 1 trước khi thực hiện một hành động. Bài toán có thể giải bằng vòng lặp rất dễ, nhưng ở B14 mục tiêu là đọc được thứ tự thực thi của recursion: nếu lệnh in được đặt trước recursive call thì dữ liệu được phát trong giai đoạn CALL, còn nếu đặt sau call thì thứ tự sẽ đảo ngược ở giai đoạn RETURN. Homework Easy này yêu cầu đúng chuỗi n, n-1, ..., 1 để học viên củng cố base case, định dạng output và mối liên hệ giữa vị trí của lệnh cout với call stack. Không có thuật toán ẩn; điểm quan trọng là kiểm soát thứ tự thực thi.
Yêu cầu
- Viết hàm đệ quy.
- Nếu n=0 thì dừng.
- In n trước recursive call với n-1.
- Định dạng các số cách nhau một dấu cách.
Input
Một số nguyên n.
Output
Một dòng các số n, n-1, ..., 1; nếu n=0 thì in dòng rỗng.
Ràng buộc
0 ≤ n ≤ 2000.
Ví dụ 1
Input
5
Output
5 4 3 2 1
Giải thích
Với n=5, tầng đầu in 5 rồi gọi f(4). Tầng kế tiếp in 4 rồi gọi f(3), tiếp tục cho đến khi in 1 và gọi f(0). Tại 0 hàm dừng. Vì mọi giá trị đã được in trong giai đoạn CALL, output theo đúng thứ tự là 5 4 3 2 1.
Ví dụ 2
Input
0
Output
Giải thích
Input 0 chạm base case ngay lập tức, nên hàm không in số nào và cũng không tạo thêm recursive call. Vì thế dòng output rỗng là đúng; đây là test kiểm tra chương trình không in giá trị 0 ngoài yêu cầu.
Thông tin học tập
- Module: M04
- Buổi: B14
- Loại bài: HOMEWORK
- Độ khó: Easy
- Concepts: recursion, print order, call before return, base case
- Giới hạn kiến thức: B01-B14
- Time limit: 1 second(s)
- Memory limit: 256 MB
- Point: 100
Comments