Đệ Quy
Khái niệm :
Một hàm được gọi là đệ qui nếu bên trong thân của hàm đó có lời gọi hàm lại chính nó
Phân loại đệ qui :
Đệ quy thường gặp thuộc một trong bốn loại sau :
* Đệ qui tuyến tính
* Đê qui nhị phân
* Đệ qui phi tuyến
* Đệ qui hỗ tương
Cấu trúc hàm đệ qui :
Đệ qui tuyến tính :Cấu trúc của nó giống như định nghĩa :
Code:
KieuDuLieu TenHam(Thamso)
{
if(Dieu Kieu Dung)
{
...;
return Gia tri tra ve;
}
...;
TenHam(Thamso)
...;
...;
}
Đệ qui nhị phân : Cũng giống như đệ qui tuyến tính nhưng bên trong thân hàm của nó có thêm một lời gọi lại chính nó
Code:
KieuDuLieu TenHam(Thamso)
{
if(Dieu Kieu Dung)
{
...;
return Gia tri tra ve;
}
...;
TenHam(Thamso);
...;
...;
TenHam(Thamso);
...;
...;
}
Đệ qui tương hỗ : Trong đệ qui tương hỗ thì thường có 2 hàm , và trong thân của hàm này có lời gọi của hàm kia , điều kiện dừng và giá tri tra về của cả hai hàm có thể giống nhau hoặc khác nhau
Code:
KieuDuLieu TenHamX(Thamso)
{
if(Dieu Kieu Dung)
{
...;
return Gia tri tra ve;
}
...;
return TenHamX(Thamso) <Lien ket hai ham> TenHamY(Thamso);
}
KieuDuLieu TenHamY(Thamso)
{
if(Dieu Kieu Dung)
{
...;
return Gia tri tra ve;
}
...;
return TenHamY(Thamso)<Lien ket hai ham>TenHamX(Thamso);
}
Đệ qui phi tuyến : Hàm được gọi là đệ qui phi tuyến nếu bên trong thân hàm có lời gọi lại chính nó được đặt bên trong thân của vòng lặp
Code:
KieuDuLieu TenHam(Thamso)
{
if(Dieu Kieu Dung)
{
...;
return Gia tri tra ve;
}
...;
vonglap(dieu kieu lap)
{
...TenHam(Thamso)...;
}
return Gia tri tra ve;
}
Bài tập đệ qui :
1/Đệ qui tuyến tính :
Bài tập 1:
Tính S(n) = 1 + 2 + 3 + ... + n - 1 + n
Bài tập 2:
Tính S(n) = 1^2 + 2^2 + 3^2 + ... + (n-1)^2 + n^2
Bài tập 3:
Tính S(n) = 1 + 1/2 + 1/3 + ... + 1/n
Bài tập 4:
Tính S(n) = 1/2 + 1/4 + ... + 1/2n
Bài tập 5:
Tính S(n) = 1 + 1/3 + 1/5 + ... + 1/(2n+1)
Bài tập 6:
Tính S(n) = 1/(1*2) + 1/(2*3) + 1/( n(*n-1) )
Bài tập 7 :
Tính S(n) = 1/2 + 2/3 + 3/4 + ... + n/(n+1)
Bài tập 8 :
Tính S(n) = 1/2 + 3/4 + 5/6 + ... + (2n+1)/(2n+2)
Bài tập 9:
Tính T(n) = 1*2*3*.....*n
Bài tập 10:
Tính T(x,n) = x^n
Bài tập 11:
Tính S(n) = 1 + 1.2 + 1.2.3 + .... + 1.2.3....n
Bài tập 12:
Tính S(x,n) = x + x^2 + x^3 + ... + x^n
Bài tập 13 :
Tính S(x,n) = x^2 + x^4 +.... + x^2n
Bài tập 14 :
Tính S(x,n) = x + x^3 + x^5 +....+ x^(2n+1)
Bài tập 15:
Tính S(n) = 1 + 1/(1+2) + 1/(1+2+3) + ... + 1/(1+2+3+...+n)
Bài tập 16:
Tính S(x,n) = x + (x^2)/2! + (x^3)/3! + ... + (x^n)/n!
Bài tập 17 :
Tính S(x,n) = 1 + (x^2)/2! + (x^4)/4! + ... + (x^2n)/(2n)!
Bài tập 18:
Tìm ước số lẻ lớn nhất của số nguyên dương n . Ví dụ : n = 100 ước lẻ lớn nhất của 100 là 25
Bài tập 19:
Tính S(n) = sqrt(2 + sqrt (2 + ... sqrt ( 2 + sqrt(2) ) ) )
Bài tập 20:
Tính S(n) = sqrt(n + sqrt (n-1 + sqrt(n-2 + ...sqrt(2 + sqrt (1) ) ) ) )
Bài tập 21:
Tính S(n) = sqrt(1 + sqrt(2 + sqrt (3 + ...sqrt (n-1 + sqrt (n)))))
Bài tập 22:
S(n) = 1/(1 + 1/(1 + 1/(1 + 1/(... 1 /(1/(1 + 1/(1 + 1 )))))))
Bài tập 23:
Hãy đếm số lượng chữ số của số nguyên dương n
Bài tập 24:
Hãy tính tổng các chữ số của số nguyên dương n
Bài tập 25:
Hãy tính tích các chữ số của số nguyên dương n
Bài tập 26:
Hãy đếm số lượng chữ số lẻ của số nguyên dương n
Bài tập 27:
Hãy tính tổng các chữ số chẵn của số nguyên dương n
Bài tập 28:
Hãy tính tích các chữ số lẻ của số nguyên dương n
Bài tập 29:
Cho số nguyên dương n . Hãy tìm chữ số đầu tiên của n
Bài tập 30:
Hãy tìm chữ số đảo ngược của số nguyên dương n
Bài tập 31:
Tìm chữ số lớn nhất của số nguyên dương n
Bài tập 32:
Tìm chữ số nhỏ nhất của số nguyên dương n
Bài tập 33:
Hãy kiểm tra số nguyên dương n có toàn chữ số lẻ hay không ?
Bài tập 34 :
Hãy kiểm tra số nguyên dương n có toàn chữ số chẵn hay không ?
0 Response to "Đệ Quy"
Đăng nhận xét