Bạn An được yêu cầu viết các hàm đệ quy cho các bài toán sau 1. Viết một hàm có chức năng

Hoạt động 3 trang 8 Chuyên đề Tin học 11

Bạn An được yêu cầu viết các hàm đệ quy cho các bài toán sau

1. Viết một hàm có chức năng

in ra các số đếm ngược từ n xuống 1.

2. Viết hàm tính số Fibonacci thứ n.

Bạn An đã viết các hàm giải hai bài toán trên như sau:

Bạn An được yêu cầu viết các hàm đệ quy cho các bài toán sau

Các hàm trên của bạn An có đúng không?

Trả lời

Các hàm của bạn An đều bị lỗi:

- Hàm của chương trình 1 sẽ bị lặp vô hạn lần. Như vậy, muốn sửa lỗi này cần có các lệnh điều khiển làm dừng quá trình gọi đệ quy. Các lệnh này được gọi là lệnh điều khiển dừng hay phần điều khiển dừng của hàm. Chương trình 1 được viết lại đúng sau khi thêm phần điều khiển dừng như sau:

Bạn An được yêu cầu viết các hàm đệ quy cho các bài toán sau

- Chương trình 2 có 2 lỗi: lỗi gọi đệ quy vô hạn không dừng và lỗi không thiết lập được các giá trị ban đầu của số Fibonacci với các trường hợp n = 0 và n = 1. Như vậy, để sửa các lỗi này cần đưa vào các lệnh điều khiển dừng gọi đệ quy vô hạn và các lệnh thiết lập các giá trị ban đầu của dãy. Các lệnh thiết lập các giá trị ban đầu của hàm với tham số đầu vào nhỏ sẽ được gọi là phần cơ sở của hàm đệ quy.

Bạn An được yêu cầu viết các hàm đệ quy cho các bài toán sau

Xem thêm lời giải bài tập Chuyên đề học tập Tin học lớp 11 Kết nối tri thức hay, chi tiết khác:

Bài 1: Đệ quy và hàm đệ quy

Bài 2: Thiết kế thuật toán đệ quy

Bài 3: Thực hành giải toán theo kĩ thuật đệ quy

Bài 4: Tháp Hà Nội

Bài 5: Thực hành thiết kế thuật toán theo kĩ thuật đệ quy

Bài 6: Ý tưởng và kĩ thuật chia để trị

Câu hỏi cùng chủ đề

Xem tất cả