Hàm đệ quy là những hàm gọi lại chính nó. Nó hữu dụng trong các tác vụ như sắp xếp hoặc tính toán các số giai thừa… Hàm đệ quy tương ứng với khái niệm quy nạp trong toán học. Ta có thể sử dụng định nghĩa giai thừa theo quy nạp toán học như sau
Và chúng ta có thể xây dựng hàm đệ quy tương ứng với phép tính giai thừa này như sau
Ví dụ | Kết quả |
#include using namespace std;
long Fac(long a)
{
if(a>0)
return a*Fac(a-1);
else
return 1;
}
int main()
{
long num = 3;
cout<
return 0;
} | 6 |
Giải thích: hàm Fac sẽ tính giá trị giai thừa của a theo công thức tính ở trên. Nếu a>0, thì hàm sẽ trả về giá trị là a*Fac(a-1), hàm Fac(a-1) lại gọi đến chính nó, và quá trình này cứ tiếp tục cho đến khi giá trị a = 0. Việc sử dụng lời gọi hàm Fac(0) sẽ cho kết quả tương ứng là 1.
Lưu ý: hàm đệ quy cũng như vòng lặp, nó có thể lặp vô hạn, nếu điều kiện dừng không được đảm bảo.
Bài tập 7.
- Xây dựng hàm giải phương trình
- Xây dựng hàm tính tổng của n số nguyên tố đầu tiên, với n là số nhập vào từ bàn phím.
- Xây dựng hàm kiểm tra một số có phải là số chính phương hay không. Số chính phương là số nguyên có thể biểu diễn dưới dạng lũy thừa của một số nguyên.
- Xây dựng hàm đệ quy để tính tổng của n số nguyên dương từ 0 đến n.
- Cho một dãy 5 số nguyên. Hãy xây dựng các hàm sau:
- Hàm nhập vào 5 số nguyên đó.
- Hàm sắp xếp 5 số nguyên đó theo thứ tự tăng dần.
- Hàm tính tổng của 5 số nguyên đó.
- Xuất các kết quả: các số nguyên sau khi sắp xếp và tổng của chúng.
|
No comments:
Post a Comment