SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
ĐỆ 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 :
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ó
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
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
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 730: Tính S(n) = 1 + 2 + 3 + ... + n - 1 + n
int Tinh(int n)
{
if (n==1)
return 1;
return Tinh(n-1) + n;
}
Bài tập 731 : Tính S(n) = 1^2 + 2^2 + 3^2 + ... + (n-1)^2 + n^2
int Tinh(int n)
{
if (n==1)
return 1;
return Tinh(n-1) + n*n;
}
Bài tập 732 : Tính S(n) = 1 + 1/2 + 1/3 + ... + 1/n
float Tinh(float n)
{
if (n==1)
return 1;
return Tinh(n-1) + 1/n;
}
Bài tập 733 : Tính S(n) = 1/2 + 1/4 + ... + 1/2n
float Tinh(float n)
{
if (n==1)
return 0.5;
return Tinh(n-1) + 1/(2*n);
}
Bài tập 734 : Tính S(n) = 1 + 1/3 + 1/5 + ... + 1/(2n+1)
float Tinh(float n)
{
if (n==1)
return 1;
return Tinh(n-1) + 1/(2*n+1);
}
Bài tập 735: Tính S(n) = 1/(1*2) + 1/(2*3) + 1/( n(*n-1) )
float Tinh(float n)
{
if (n==1)
return 0.5;
return Tinh(n-1) + 1/(n*(n+1));
}
Bài tập 736 : Tính S(n) = 1/2 + 2/3 + 3/4 + ... + n/(n+1)
float Tinh(float n)
{
if (n==1)
return 0.5;
return Tinh(n-1) + n/(n+1);
}
Bài tập 737 :Tính S(n) = 1/2 + 3/4 + 5/6 + ... + (2n+1)/(2n+2)
float Tinh(float n)
{
if (n==1)
return 0.5;
return Tinh(n-1) + (2*n+1)/(2*n+2);
}
Bài tập 738 :Tính T(n) = 1*2*3*.....*n
float Tinh(float n)
{
if (n==1)
return 1;
return Tinh(n-1)*n;
}
Bài tập 739 :Tính T(x,n) = x^n
float LuyThua(float x , int n)
{
if(n == 0)
{
return 1;
}
if(n < 0)
{
return LuyThua(x,n+1) * 1/x;
}
return LuyThua(x,n-1) * x;
}
Bài tập 740 :Tính S(n) = 1 + 1.2 + 1.2.3 + .... + 1.2.3....n
long GiaiThua(int n)
{
if(n==1)
{
return 1;
}
return GiaiThua(n-1)*n;
}
long Tong(int n)
{
if(n == 1)
{
return 1;
}
return Tong(n-1) + GiaiThua(n-1)*n;
}
Bài tập 741 :Tính S(x,n) = x + x^2 + x^3 + ... + x^n
float LuyThua(float x , int n)
{
if(n == 0)
{
return 1;
}
return LuyThua(x,n-1)*x;
}
float Tong(float x , int n)
{
if(n == 1)
{
return x;
}
return Tong(x,n-1) + LuyThua(x,n-1)*x;
}
Bài tập 742 :Tính S(x,n) = x^2 + x^4 +.... + x^2n
double bai742(int x, int n)
{
if (n==1)
{
return pow(x,2*n);
}
return bai742(x,n-1) + pow(x,2*n);
}
Bài tập 743 :Tính S(x,n) = x + x^3 + x^5 +....+ x^(2n+1)
double tinh(int x, int n)
{
if (n==1)
{
return pow(x,n);
}
return tinh(x,n-1) + pow(x,n+1);
}
Bài tập 744 :Tính S(n) = 1 + 1/(1+2) + 1/(1+2+3) + ... + 1/(1+2+3+...+n)
float Tong(float n)
{
if(n == 1)
{
return (float)1;
}
return Tong(n-1) + n;
}
float TongChia(float n)
{
if(n == 1)
{
return (float)1;
}
return TongChia(n-1) + 1/(Tong(n-1) + n);
}
Bài tập 745 :Tính S(x,n) = x + (x^2)/2! + (x^3)/3! + ... + (x^n)/n!
float LuyThua(float x , float n)
{
if(n == 1)
{
return x;
}
return LuyThua(x,n-1)*x;
}
float GiaiThua(float n)
{
if(n == 1)
{
return (float)1;
}
return GiaiThua(n-1)*n;
}
float LTChiaGT(float x , float n)
{
if(n == 1)
{
return x;
}
return LTChiaGT(x,n-1) + ((LuyThua(x,n-1)*x) / (GiaiThua(n-1)*n));
}
Bài tập 746 :Tính S(x,n) = 1 + (x^2)/2! + (x^4)/4! + ... + (x^2n)/(2n)!
float LuyThua(float x , float n)
{
if(n == 0)
{
return (float)1;
}
return LuyThua(x,n-1) *x*x;
}
float GiaiThua(float n)
{
if(n == 0)
{
return (float)1;
}
return GiaiThua(n-1)*n;
}
float LTChiaGT(float x , float n)
{
if(n == 0)
{
return (float)1;
}
return LTChiaGT(x,n-1) + ( (LuyThua(x,n-1)*x*x) / ((GiaiThua (2*n - 1) *2*n)));
}
Bài tập 747 :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
int UocLeMax(int n)
{
if(n % 2 == 1)
{
return n;
}
return UocLeMax(n/2);
}
Bài tập 748 :Tính S(n) = sqrt(2 + sqrt (2 + ... sqrt ( 2 + sqrt(2) ) ) )
#include <math.h>
float Function(float n)
{
if(n == 1)
{
return sqrt(2);
}
return sqrt(2 + Function(n-1));
}
Bài tập 749 :Tính S(n) = sqrt(n + sqrt (n-1 + sqrt(n-2 + ...sqrt(2 + sqrt (1) ) ) ) )
#include <math.h>
long double Function(long double n)
{
if(n == 1)
{
return 1;
}
return sqrt(n + Function(n-1));
}
Bài tập 750 :Tính S(n) = sqrt(1 + sqrt(2 + sqrt (3 + ...sqrt (n-1 + sqrt (n)))))
[FONT="]#include <math.h>[/FONT]
[FONT="]float Function(float i, float n) //bắt đầu: i=1[/FONT]
[FONT="]{[/FONT]
[FONT="] if(n == i)[/FONT]
[FONT="] {[/FONT]
[FONT="] return sqrt(n);[/FONT]
[FONT="] }[/FONT]
[FONT="] return sqrt( i + Function(i+1,n));[/FONT]
[FONT="]}[/FONT
]
Bài tập 751 :S(n) = 1/(1 + 1/(1 + 1/(1 + 1/(... 1 /(1/(1 + 1/(1 + 1 )))))))
long double Thuong(int n)
{
if(n == 1)
{
return 1.0 / (1.0 + 1.0);
}
return 1 / (1 + Thuong(n-1));
}
Bài tập 752 :Hãy đếm số lượng chữ số của số nguyên dương n
int DemSoLuongChuSo(int n)
{
if(n == 0)
{
return 0;
}
return DemSoLuongChuSo(n/10) + 1;
}
Bài tập 753 :Hãy tính tổng các chữ số của số nguyên dương n
int TongChuSo(int n)
{
if(n == 0)
{
return 0;
}
return TongChuSo(n/10) + n % 10;
}
Bài tập 754 :Hãy tính tích các chữ số của số nguyên dương n
int Tich(int n)
{
if(n == 0)
{
return 1;
}
return Tich(n/10) * (n%10);
}
Bài tập 755 :Hãy đếm số lượng chữ số lẻ của số nguyên dương n
int DemLe(int n)
{
if(n == 0)
{
return 0;
}
if(n%2 == 1)
{
return DemLe(n/10) + 1;
}
return DemLe(n/10);
}
Bài tập 756 :Hãy tính tổng các chữ số chẵn của số nguyên dương n
int TongChuSoChan(int n)
{
if(n == 0)
{
return 0;
}
if(n%2 == 0)
{
return TongChuSoChan(n/10) + (n%10);
}
return TongChuSoChan(n/10);
}
Bài tập 757 :Hãy tính tích các chữ số lẻ của số nguyên dương n
int TichChuSoLe(int n)
{
if(n == 0)
{
return 0;
}
if(n % 2 == 1)
{
return TichChuSoLe(n/10) * (n%10);
}
return TichChuSoLe(n/10);
}
Bài tập 758 :Cho số nguyên dương n . Hãy tìm chữsố đầu tiên của n
int ChuSoDauTien(int n)
{
if(n/10 == 0)
{
return n;
}
return ChuSoDauTien(n/10);
}
Bài tập 759 :Hãy tìm chữsố đảo ngược của số nguyên dương n
int DemSoLuongChuSo(int n)
{
if(n == 0)
{
return 0;
}
return DemSoLuongChuSo(n/10)+1;
}
int DoiChuSo(int H , int Dem)
{
if(Dem > 0)
{
return DoiChuSo(H*10,Dem-1);
}
return H;
}
int ChuSoDaoNguoc(int n)
{
if(n == 0)
{
return 0;
}
int Dem = DemSoLuongChuSo(n);
int H = n%10;
int T = DoiChuSo(H,Dem-1);
return ChuSoDaoNguoc(n/10) + T;
}
Bài tập 760 :Tìm chữsố lớn nhất của số nguyên dương n
int ChuSoLonNhat(int Max,int n) //Max bắt đầu là n%10
{
if (n%10==0)
{
return Max;
}
Max=(Max>n%10)?Max:n%10;
return ChuSoLonNhat(Max,n/10);
}
Bài tập 761 :Tìm chữsố nhỏ nhất của số nguyên dương n
int ChuSoNhoNhat(int Min,int n) //Min bắt đầu là n%10
{
if (n%10==0)
{
return Min;
}
Min=(Min<n%10) ? Min : n%10;
return ChuSoLonNhat(Min,n/10);
}
Bài tập 762 :Hãy kiểm tra số nguyên dương n có toàn chữsố lẻ hay không ?
int KTToanLe(int n)
{
if (n%2==0 && n!= 0)
{
return 0;
}
if (n%2==1)
{
return KTToanLe(n/10);
}
return 1;
}
Bài tập 763 : Hãy kiểm tra số nguyên dương n có toàn chữ số chẵn hay không ?
int KTToanChan(int n)
{
if(n == 0)
{
return 1;
}
if(n % 2 == 1)
{
return 0;
}
if(n % 2 == 0)
{
return KTToanChan(n/10);
}
return 1;
}
Làm thêm đệ qui cho mảng 1 chiều, ma trận nhé!
--------Hết đệ qui------

Más contenido relacionado

La actualidad más candente

Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cận
Diên Vĩ
 
Ky thuat do_hoa
Ky thuat do_hoaKy thuat do_hoa
Ky thuat do_hoa
Dee Dee
 
56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh
 56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh   56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh
56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh
Thùy Linh
 
Chuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tánChuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tán
duysu
 
Ôn tập an toàn thông tin
Ôn tập an toàn thông tinÔn tập an toàn thông tin
Ôn tập an toàn thông tin
Mozzila Rosa
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đỗ Đức Hùng
 
Tong hop cau hoi trac nghiem hdh
Tong hop cau hoi trac nghiem hdhTong hop cau hoi trac nghiem hdh
Tong hop cau hoi trac nghiem hdh
Hoat Thai Van
 

La actualidad más candente (20)

Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu Chương 4. Chuẩn hóa cơ sở dữ liệu
Chương 4. Chuẩn hóa cơ sở dữ liệu
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cận
 
Chuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệChuẩn hóa lược đồ quan hệ
Chuẩn hóa lược đồ quan hệ
 
chuong 4. dai so boole
chuong 4.  dai so boolechuong 4.  dai so boole
chuong 4. dai so boole
 
Giáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việtGiáo trình c++ full tiếng việt
Giáo trình c++ full tiếng việt
 
Ky thuat do_hoa
Ky thuat do_hoaKy thuat do_hoa
Ky thuat do_hoa
 
Bai tap oop c++
Bai tap oop c++Bai tap oop c++
Bai tap oop c++
 
56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh
 56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh   56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh
56 câu hỏi tự luận và đáp án chi tiết Tư Tưởng Hồ Chí Minh
 
Chuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tánChuong 4 - CSDL phân tán
Chuong 4 - CSDL phân tán
 
Ôn tập an toàn thông tin
Ôn tập an toàn thông tinÔn tập an toàn thông tin
Ôn tập an toàn thông tin
 
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT. Giảng viên : PGS.TS. HUỲNH CÔNG ...
 
Starter Toeic
Starter ToeicStarter Toeic
Starter Toeic
 
[123doc.vn] bai-tap-nguyen-ly-thong-ke-co-loi-giai
[123doc.vn]   bai-tap-nguyen-ly-thong-ke-co-loi-giai[123doc.vn]   bai-tap-nguyen-ly-thong-ke-co-loi-giai
[123doc.vn] bai-tap-nguyen-ly-thong-ke-co-loi-giai
 
Toán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao họcToán rời rạc-Dành cho sinh viên,người thi cao học
Toán rời rạc-Dành cho sinh viên,người thi cao học
 
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng LongBài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
Bài Giảng Đại Số Tuyến Tính - ĐH Thăng Long
 
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại viĐề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
Đề Cương ôn tập kiến trúc máy tính và thiết bị ngoại vi
 
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
Bài giảng ngôn ngữ lập trình C cơ bản trường đại học công nghiệp thực phẩm TP...
 
Ngân hàng câu hỏi trắc nghiệm kiến trúc máy tính
Ngân hàng câu hỏi trắc nghiệm kiến trúc máy tínhNgân hàng câu hỏi trắc nghiệm kiến trúc máy tính
Ngân hàng câu hỏi trắc nghiệm kiến trúc máy tính
 
BÀI TẬP PHÂN TÍCH THIẾT KẾ HỆ THỐNG -Bộ môn Hệ thống thông tin
BÀI TẬP PHÂN TÍCH THIẾT KẾ HỆ THỐNG -Bộ môn Hệ thống thông tin BÀI TẬP PHÂN TÍCH THIẾT KẾ HỆ THỐNG -Bộ môn Hệ thống thông tin
BÀI TẬP PHÂN TÍCH THIẾT KẾ HỆ THỐNG -Bộ môn Hệ thống thông tin
 
Tong hop cau hoi trac nghiem hdh
Tong hop cau hoi trac nghiem hdhTong hop cau hoi trac nghiem hdh
Tong hop cau hoi trac nghiem hdh
 

Cach giai bai tap ham de quy minh tim duoc

  • 1. ĐỆ 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 : 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ó 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 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)
  • 2. { ...; 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 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 730: Tính S(n) = 1 + 2 + 3 + ... + n - 1 + n int Tinh(int n) { if (n==1) return 1; return Tinh(n-1) + n; } Bài tập 731 : Tính S(n) = 1^2 + 2^2 + 3^2 + ... + (n-1)^2 + n^2 int Tinh(int n) { if (n==1) return 1; return Tinh(n-1) + n*n; } Bài tập 732 : Tính S(n) = 1 + 1/2 + 1/3 + ... + 1/n float Tinh(float n) { if (n==1) return 1; return Tinh(n-1) + 1/n; } Bài tập 733 : Tính S(n) = 1/2 + 1/4 + ... + 1/2n float Tinh(float n) { if (n==1)
  • 3. return 0.5; return Tinh(n-1) + 1/(2*n); } Bài tập 734 : Tính S(n) = 1 + 1/3 + 1/5 + ... + 1/(2n+1) float Tinh(float n) { if (n==1) return 1; return Tinh(n-1) + 1/(2*n+1); } Bài tập 735: Tính S(n) = 1/(1*2) + 1/(2*3) + 1/( n(*n-1) ) float Tinh(float n) { if (n==1) return 0.5; return Tinh(n-1) + 1/(n*(n+1)); } Bài tập 736 : Tính S(n) = 1/2 + 2/3 + 3/4 + ... + n/(n+1) float Tinh(float n) { if (n==1) return 0.5; return Tinh(n-1) + n/(n+1); } Bài tập 737 :Tính S(n) = 1/2 + 3/4 + 5/6 + ... + (2n+1)/(2n+2) float Tinh(float n) { if (n==1) return 0.5; return Tinh(n-1) + (2*n+1)/(2*n+2); } Bài tập 738 :Tính T(n) = 1*2*3*.....*n float Tinh(float n) { if (n==1) return 1; return Tinh(n-1)*n; } Bài tập 739 :Tính T(x,n) = x^n float LuyThua(float x , int n) { if(n == 0) { return 1; } if(n < 0) {
  • 4. return LuyThua(x,n+1) * 1/x; } return LuyThua(x,n-1) * x; } Bài tập 740 :Tính S(n) = 1 + 1.2 + 1.2.3 + .... + 1.2.3....n long GiaiThua(int n) { if(n==1) { return 1; } return GiaiThua(n-1)*n; } long Tong(int n) { if(n == 1) { return 1; } return Tong(n-1) + GiaiThua(n-1)*n; } Bài tập 741 :Tính S(x,n) = x + x^2 + x^3 + ... + x^n float LuyThua(float x , int n) { if(n == 0) { return 1; } return LuyThua(x,n-1)*x; } float Tong(float x , int n) { if(n == 1) { return x; } return Tong(x,n-1) + LuyThua(x,n-1)*x; } Bài tập 742 :Tính S(x,n) = x^2 + x^4 +.... + x^2n double bai742(int x, int n) { if (n==1) { return pow(x,2*n); } return bai742(x,n-1) + pow(x,2*n); } Bài tập 743 :Tính S(x,n) = x + x^3 + x^5 +....+ x^(2n+1) double tinh(int x, int n) { if (n==1)
  • 5. { return pow(x,n); } return tinh(x,n-1) + pow(x,n+1); } Bài tập 744 :Tính S(n) = 1 + 1/(1+2) + 1/(1+2+3) + ... + 1/(1+2+3+...+n) float Tong(float n) { if(n == 1) { return (float)1; } return Tong(n-1) + n; } float TongChia(float n) { if(n == 1) { return (float)1; } return TongChia(n-1) + 1/(Tong(n-1) + n); } Bài tập 745 :Tính S(x,n) = x + (x^2)/2! + (x^3)/3! + ... + (x^n)/n! float LuyThua(float x , float n) { if(n == 1) { return x; } return LuyThua(x,n-1)*x; } float GiaiThua(float n) { if(n == 1) { return (float)1; } return GiaiThua(n-1)*n; } float LTChiaGT(float x , float n) { if(n == 1) { return x; } return LTChiaGT(x,n-1) + ((LuyThua(x,n-1)*x) / (GiaiThua(n-1)*n)); } Bài tập 746 :Tính S(x,n) = 1 + (x^2)/2! + (x^4)/4! + ... + (x^2n)/(2n)! float LuyThua(float x , float n) { if(n == 0) {
  • 6. return (float)1; } return LuyThua(x,n-1) *x*x; } float GiaiThua(float n) { if(n == 0) { return (float)1; } return GiaiThua(n-1)*n; } float LTChiaGT(float x , float n) { if(n == 0) { return (float)1; } return LTChiaGT(x,n-1) + ( (LuyThua(x,n-1)*x*x) / ((GiaiThua (2*n - 1) *2*n))); } Bài tập 747 :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 int UocLeMax(int n) { if(n % 2 == 1) { return n; } return UocLeMax(n/2); } Bài tập 748 :Tính S(n) = sqrt(2 + sqrt (2 + ... sqrt ( 2 + sqrt(2) ) ) ) #include <math.h> float Function(float n) { if(n == 1) { return sqrt(2); } return sqrt(2 + Function(n-1)); } Bài tập 749 :Tính S(n) = sqrt(n + sqrt (n-1 + sqrt(n-2 + ...sqrt(2 + sqrt (1) ) ) ) ) #include <math.h> long double Function(long double n) { if(n == 1) { return 1; } return sqrt(n + Function(n-1)); } Bài tập 750 :Tính S(n) = sqrt(1 + sqrt(2 + sqrt (3 + ...sqrt (n-1 + sqrt (n)))))
  • 7. [FONT="]#include <math.h>[/FONT] [FONT="]float Function(float i, float n) //bắt đầu: i=1[/FONT] [FONT="]{[/FONT] [FONT="] if(n == i)[/FONT] [FONT="] {[/FONT] [FONT="] return sqrt(n);[/FONT] [FONT="] }[/FONT] [FONT="] return sqrt( i + Function(i+1,n));[/FONT] [FONT="]}[/FONT ] Bài tập 751 :S(n) = 1/(1 + 1/(1 + 1/(1 + 1/(... 1 /(1/(1 + 1/(1 + 1 ))))))) long double Thuong(int n) { if(n == 1) { return 1.0 / (1.0 + 1.0); } return 1 / (1 + Thuong(n-1)); } Bài tập 752 :Hãy đếm số lượng chữ số của số nguyên dương n int DemSoLuongChuSo(int n) { if(n == 0) { return 0; } return DemSoLuongChuSo(n/10) + 1; } Bài tập 753 :Hãy tính tổng các chữ số của số nguyên dương n int TongChuSo(int n) { if(n == 0) { return 0; } return TongChuSo(n/10) + n % 10; } Bài tập 754 :Hãy tính tích các chữ số của số nguyên dương n int Tich(int n) { if(n == 0) { return 1; } return Tich(n/10) * (n%10);
  • 8. } Bài tập 755 :Hãy đếm số lượng chữ số lẻ của số nguyên dương n int DemLe(int n) { if(n == 0) { return 0; } if(n%2 == 1) { return DemLe(n/10) + 1; } return DemLe(n/10); } Bài tập 756 :Hãy tính tổng các chữ số chẵn của số nguyên dương n int TongChuSoChan(int n) { if(n == 0) { return 0; } if(n%2 == 0) { return TongChuSoChan(n/10) + (n%10); } return TongChuSoChan(n/10); } Bài tập 757 :Hãy tính tích các chữ số lẻ của số nguyên dương n int TichChuSoLe(int n) { if(n == 0) { return 0; } if(n % 2 == 1) { return TichChuSoLe(n/10) * (n%10); } return TichChuSoLe(n/10); } Bài tập 758 :Cho số nguyên dương n . Hãy tìm chữsố đầu tiên của n int ChuSoDauTien(int n) { if(n/10 == 0) { return n; } return ChuSoDauTien(n/10); } Bài tập 759 :Hãy tìm chữsố đảo ngược của số nguyên dương n
  • 9. int DemSoLuongChuSo(int n) { if(n == 0) { return 0; } return DemSoLuongChuSo(n/10)+1; } int DoiChuSo(int H , int Dem) { if(Dem > 0) { return DoiChuSo(H*10,Dem-1); } return H; } int ChuSoDaoNguoc(int n) { if(n == 0) { return 0; } int Dem = DemSoLuongChuSo(n); int H = n%10; int T = DoiChuSo(H,Dem-1); return ChuSoDaoNguoc(n/10) + T; } Bài tập 760 :Tìm chữsố lớn nhất của số nguyên dương n int ChuSoLonNhat(int Max,int n) //Max bắt đầu là n%10 { if (n%10==0) { return Max; } Max=(Max>n%10)?Max:n%10; return ChuSoLonNhat(Max,n/10); } Bài tập 761 :Tìm chữsố nhỏ nhất của số nguyên dương n int ChuSoNhoNhat(int Min,int n) //Min bắt đầu là n%10 { if (n%10==0) { return Min; } Min=(Min<n%10) ? Min : n%10; return ChuSoLonNhat(Min,n/10); } Bài tập 762 :Hãy kiểm tra số nguyên dương n có toàn chữsố lẻ hay không ? int KTToanLe(int n)
  • 10. { if (n%2==0 && n!= 0) { return 0; } if (n%2==1) { return KTToanLe(n/10); } return 1; } Bài tập 763 : Hãy kiểm tra số nguyên dương n có toàn chữ số chẵn hay không ? int KTToanChan(int n) { if(n == 0) { return 1; } if(n % 2 == 1) { return 0; } if(n % 2 == 0) { return KTToanChan(n/10); } return 1; } Làm thêm đệ qui cho mảng 1 chiều, ma trận nhé! --------Hết đệ qui------