Lập Trình C++

CHIA SẺ
Bài Giải Một Số Bài Tập Kiểu Chuỗi click here 
Các hàm & cách dùng hàm trong kiểu chuỗi click here 
 Bài Tập Về Mảng Một Chiều click here
 Bài Tập Về Mảng Hai Chiều click here
 Tham Khảo Đệ Quy click here
Ôn Tập KTLT Cơ Bản(nguồn Oanh Trần 23)
Bài tập đệ quy
Mình xin chia sẽ với các bạn một số bài tập về hàm đệ quy,mong các bạn góp ý nhé:
1/ Tìm chữ số có giá trị lớn nhất của số nguyên dương n

long chusolonnhat(long n,long &max)
{
long m;
if(n==0)
return max;
else
{
m=n%10;
if(m>max)
max=m;
}    
return chusolonnhat(n/10,max);
}
2/ Đổ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;
        }
}
             OR

 long nhiphan(int a)
{
long b;
if(a==0)
return 0;
else
b=a%2;
return nhiphan(a/2)*10+b;
}
3/ 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);
}
4/ 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);
}
6/ 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);
}
7/ Tính S(n)=1+2-3+4....+(-1)^(n+1) n với n>0

int tong(int n)
{
if(n==1) return 1;
else
{
if(n%2==0)
return -n+tong(n-1);
else return n+tong(n-1);
         }
}
8/ 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);
}
9/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);
}
10/ 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;
}
11/ 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 return 0;
}
Trên đây chỉ là một số bài gợi ý click vào đây  để tham khảo thêm một số bài tập
 
Toggle Footer