Bài giảng Kỹ thuật lập trình nâng cao Chương 5 trang bị cho người học kiến thức về lập trình đệ qui. Nội dung chính trong chương này gồm có: Khái niệm lập trình đệ qui, đệ qui tuyến tính, đệ qui nhị phân, đệ qui phi tuyến, đệ qui hỗ tương, cách hoạt động hàm đệ qui,. | CHƢƠNG 5 Lập trình đệ qui Khái niệm Một hàm được gọi có tính đệ qui nếu trong thân của hàm đó có lệnh gọi lại chính nó một cách tường minh hay tiềm ẩn. Phân loại đệ qui Đệ qui tuyến tính. Đệ qui nhị phân. Đệ qui phi tuyến. Đệ qui hỗ tương. 2 Đệ qui tuyến tính • Trong thân hàm có duy nhất một lời gọi hàm gọi lại chính nó một cách tường minh. TenHam () { if (điều kiện dừng) { . //Trả về giá trị hay kết thúc công việc } //Thực hiện một số công việc (nếu có) . . . TenHam (); //Thực hiện một số công việc (nếu có) } 3 Đệ qui tuyến tính (tt) Ví dụ: Tính S (n) 1 2 3 n - Điều kiện dừng: S(0) = 0. - Qui tắc (công thức) tính: S(n) = S(n-1) + n. long TongS (int n) { if(n==0) return 0; return ( TongS(n-1) + n ); } 4 Đệ qui nhị phân • Trong thân của hàm có hai lời gọi hàm gọi lại chính nó một cách tường minh. TenHam () { if (điều kiện dừng) { . //Trả về giá trị hay kết thúc công việc } //Thực hiện một số công việc (nếu có) . . .TenHam (); //Giải quyết vấn đề nhỏ hơn //Thực hiện một số công việc (nếu có) . . . TenHam (); //Giải quyết vấn đề còn lại //Thực hiện một số công việc (nếu .