btvn.vn
Tìm kiếm Đăng nhập

In dãy ngược bằng đệ quy

Lưu trên thiết bị này
Chuyên đề lựa chọn CS: Đệ quy · Chọn bài khác

Dừng trước khi đọc phần tử

Dùng k làm chỉ số cần in, bắt đầu từ len(A)−1. Sau khi in A[k], gọi tiếp với k−1; khi k<0 thì kết thúc. ```python def in_nguoc(A, k): if k < 0: return print(A[k], end=" ") in_nguoc(A, k - 1) ``` Lời gọi là in_nguoc(A,len(A)−1). Với A=[9,4,7], các chỉ số được đọc là2,1,0, nên in 7,4,9. Lời gọi tiếp với k=−1 dừng trước print; không đọc A[−1] thêm một lần.

In ngược không tự đảo nội dung dãy

Nếu A=[], chỉ số bắt đầu là−1 và hàm kết thúc ngay, không đọc phần tử nào. Đặt print(A[k]) trước kiểm cơ sở sẽ làm trường hợp rỗng bị lỗi. Hàm chỉ đọc các phần tử để in theo thứ tự ngược; sau khi chạy với [9,4,7], A vẫn là [9,4,7]. Hàm không tạo hay trả một dãy đảo mới; nếu gán kết quả lời gọi thì nhận None.

Bài luyện

Sau in_nguoc(A,len(A)-1) với A=[9,4,7], kết luận nào đúng?
Chọn một đáp án

Bài luyện

Với A=[], tại sao phải kiểm k<0 trước print(A[k]) trong hàm trên?
Chọn một đáp án

Đang học