1/ In đảo ngược số n nguyên dương
{
if(n!=0)
{
cout<<n%10;
InDaoNguoc(n/10);
}
}
2/ Đếm số lượng chữ số nguyên dương n
{
if(n==0)
return 0;
return 1+DemSL(n/10);
}
3/ Tìm chữ số có giá trị lớn nhất của số nguyên dương n
{
long m;
if(n==0)
return max;
else
{
m=n%10;
if(m>max)
max=m;
}
return ChuSoLonNhat(n/10,max);
}
4/ Tìm giá trị nguyên logarit cơ số 2 của n
int Logarit(int n)
{
if(n<0)
return -1;
else
if(n>=2)
return 1+logarit(n/2);
else
}
5/ Đổi sang hệ nhị phân của số nguyên dương n
void NhiPhan(int n)
{
if(n!=0)
{
NhiPhan (n/2);
cout<<n%2;
}
}
HOẶC
long NhiPhan(int a)
{
long b;
if(a==0)
return 0;
else
b=a%2;
return NhiPhan(a/2)*10+b;
}
6/ Tìm ước số chung lớn nhất của 2 số nguyên a, b.
int UCLN(int a,int b)
{
if(a==b)
return a;
else
{
if(a>b)
a=a-b;
else
b=b-a;
}
return UCLN(a,b);
}
7/ Tìm chữ số đầu tiên của số nguyên dương n.
int ChuSoDauTien(int a)
{
if(a<10)
return a;
else
return ChuSoDauTien(a/10);
}
return a;
else
return ChuSoDauTien(a/10);
}
8/ Tính P(n)=1.3.5...(2n+1) với n>=0
long Tich(int n)
{
if(n==0)
return 1;
else
return(2*n+1)* Tich(n-1);
}else
return(2*n+1)* Tich(n-1);
9/ Tính S(n)=1+3+5+…+(2.n+1) với n>=0
{
if(n==0)
return 1;
return n+Tong(n-2);
}
10/ Tính S(n)=1-2+3-4+…+ ((-1)^(n+1)).n với n>0
int Tong(usigned n)
{
if(n==0)
return 0;
return pow(-1,(double)n+1)*n+Tong(n-1);
}
//pow(-1,n+1)=(-1)^(n+1)
HOẶC
int Tong(usigned n){
if(n==0)
return 0;
if(n%2==0)
return –n+Tong(n-1);
return n+Tong(n-1);
}
11/ Tính S(n)=1+1.2+1.2.3+…+1.2.3…n với n>0
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;
}
12/ Tính S(n)=1^2+2^2+3^2+....+n^2 với n>0
long TongBinhPhuong(int n)
{
if(n<=1)
return 1;
else
return n*n+ TongBinhPhuong(n-1);
}
else
return n*n+ TongBinhPhuong(n-1);
}
13/ Tính P(x,y)=x^y
float LuyThua(int x,int y)
{
if(y==0)
return 1;
else
if(y<0)
return LuyThua(x,y+1)*(float)1/x;
else
return x*LuyThua(x,y-1);
}
}
14/ Tính S(n) = 1 + 1/2 + 1/3 + ... + 1/n với n>0
float Tinh(float n)
{
return 1;
return Tinh(n-1) + 1/n;
}
15/ Tính S(n)=1+1/2+1/(2.4)+1/(2.4.6)+…+1/(2.4.6.2n) với n>0
float T (unsigned n)
{
if(n==0)
return 1;
return T(n-1)*2*n;
}float Tong(unsigned n)
{
if(n==0)
return 1;
return Tong(n-1)+1/T;
}
Click vào đây để xem các bài tập khác.
Click vào đây để tham khảo tài liệu về Đệ quy .
Rất hay, cảm ơn bạn nhiều.
ReplyDeleteBạn có code đệ quy bài k, share giúp mình với, mình đang bí chỗ này.
ReplyDeleteSắp xếp thứ tự tăng hoặc giảm dần dãy số nguyên n ký tự. ví dụ: nhập 456321 ==> 123456.
Thanks bạn nhé
cho mảng A gồm (n+1) nguyên dương biểu diễn cây nhị phân hoàn chỉnh có n nút. Hãy viết 1 hàm trong C với đầu vào là mảng A và số nguyên n, trả về tổng số nút có 2 con trên cây? ai giúp mình với
ReplyDeletecho mảng A gồm (n+1) nguyên dương biểu diễn cây nhị phân hoàn chỉnh có n nút. Hãy viết 1 hàm trong C với đầu vào là mảng A và số nguyên n, trả về tổng số nút có 2 con trên cây? ai giúp mình với
ReplyDeleteBài 6 .
ReplyDelete//Giả sử a> b
public int UCLN (int a, in b) {
if(b==0) return a;
retrun UCLN(b,a%b);
}
cảm ơn thầy ạ
ReplyDelete