Đệ Quy Tuyến Tính (Linear Recursion) - Freetuts
Có thể bạn quan tâm
Trong bài này mình sẽ giới thiệu đến các bạn một trong các hàm đệ quy đó chính là đệ quy tuyến tính. Đây là một hàm đệ quy cơ bản nhất và được sử dụng rất nhiều trong lập trình.
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Chúng ta sẽ cùng nhau tìm hiểu về khái niệm đệ quy tuyến tính (Linear Recursion) cũng như cơ chế hoạt động của nó.
1. Đệ quy tuyến tính là gì?
Đệ quy tuyến tính là hàm đệ quy chỉ gọi chính nó một lần trong thân hàm. Hiểu đơn giản là trong một hàm, nếu có duy nhất một câu lệnh gọi chính hàm đó thì được gọi là hàm đệ quy tuyến tính.
Ví dụ hàm tính giai thừa chính là một hàm đệ quy tuyến tính, vì nó chỉ gọi lại chính nó một lần duy nhất.
Bài viết này được đăng tại [free tuts .net]
Int factorial(int n){ If(n == 0) return 1; return n * factorial(n-1); }2. Cơ chế hoạt động của đệ quy tuyến tính (Linear Recursion)
Chúng ta sẽ lấy ví dụ hàm factorial() tính giai thừa, để xem cơ chế hoạt động của nó như thế nào nhé.
Int factorial(int n){ If(n == 0) return 1; return n * factorial(n-1); }Giả sử chúng ta muốn tính 5! thì khi đó cơ chế hoạt động như hình bên dưới đây:
Cứ sau mỗi lần gọi hàm factorial(), kết quả sẽ được đẩy vào Stack cho đến khi gặp điều kiện dừng hàm sẽ kết thúc và trả về kết quả 1. Sau đó gọi Stack để tính kết quả, cơ chế Stack sẽ lấy từ trên xuống vì vậy kết quả sẽ là : 1 * 1 * 2 * 3 * 4 * 5 = 120.
Code mẫu:
#include <iostream> using namespace std; //hàm đệ quy tuyến tính int factorial(int n){ if(n == 0) return 1; // điểm dừng của hàm, nếu n == 0 thì kết thúc hàm và trả về 1 return n * factorial(n-1); } //hàm main int main() { int n; cout<<"Nhập vào số giai thừa bạn muốn tính: "; cin>>n; int kq = factorial(n);//gọi hàm factorial() để tính giai thừa cho n và gán kết quả vào biến kq cout<<"\nKết quả \n"<<n<<"! = "<<kq; cout<<"\n-----------------------------\n"; cout<<"chương trình này được đăng tại Freetuts.net"; }Kết quả:
Như vậy là chúng ta đã thực hiện xong chương trình tính giai thừa của số nguyên n áp dụng hàm đệ quy. Cũng như kết thúc hướng dẫn đệ quy tuyến tính (Linear Recursion), chúc các bạn thực hiện thành công!!!
Từ khóa » Thế Nào Là đệ Quy Tuyến Tính
-
Đệ Quy Tuyến Tính (Linear Recursion) - Freetuts
-
Đệ Quy Tuyến Tính (Linear Recursion) - Giải Thuật đệ Quy
-
Đệ Quy Tuyến Tính (Linear Recursion) - EZCODEA
-
Đệ Quy Và Giải Thuật đệ Quy - Viblo
-
Tìm Hiểu Về Giải Thuật Đệ Quy - Viblo
-
Giải Thuật Đệ Quy - STDIO
-
Khái Niệm đệ Quy Trong Lập Trình - Techmaster
-
Bài 9: Kỹ Thuật đệ Quy (tiếp Theo) | Phuong's Blog
-
Đệ Quy (tin Học) – Wikipedia Tiếng Việt
-
Giải Thuật Đệ Quy Là Gì? - O₂ Education
-
Chương Trình Đệ Quy Hoạt Động Như Thế Nào? - CodeLearn
-
[Lập Trình C/C++] Bài 43: đệ Quy Tuyến Tính - YouTube
-
Đệ Quy – Wikipedia Tiếng Việt
-
đệ Quy Tuyến Tính, đệ Quy Nhị Phân, đệ Quy Hỗ Tương, Nguyên Lý Hoạt ...