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 .