Code C++: Đệ quy Hỗ tương

Đệ quy hỗ tương: Với dạng đệ quy hỗ tương, việc gọi hàm không đơn thuần là tự gọi nó mà còn có gọi đến hàm khác, và hàm kia có khả năng gọi lại hàm ban đầu. Cứ như vậy tạo vòng lặp xen kẽ nhau, và tất nhiên dù là lặp dạng nào thì cũng cần có điểm dừng. Ở đây cần tạo điểm dừng trên cả 2 hàm, nếu 1 trong 2 hàm không có điểm dừng thì đệ quy sẽ vô tận.


Bài toán 1Viết chương trình tính Un và Gn được xác định như sau:

Mã nguồn:
long G(int n); 


long U ( int n){ 
      if (n<5) return n;
      return U(n-1) + G(n-2);
}

long G(int n){ 
      if (n<8) return n-3;
      return U(n-1) + G(n-2);
}
Bài toán 2: Viết chương trình tính Xn và Yn được xác định như sau:

Mã nguồn:

#include<conio.h>
#include<iostream>
using namespace std;
long int X(int n);
long int Y(int n);

long int X(int n){
if(n==0)
return 1;
else
return X(n-1)+Y(n-1);
}
long int Y(int n){
if(n==0)
return 1;
else
return 2*X(n-1)*Y(n-1);
}
int main(){
int n;
cout<<"n = ";
cin>>n;
cout<<"X("<<n<<") = "<<X(n);
cout<<"\nY("<<n<<") = "<<Y(n);
getch();
}
Tag: C, C++, Đệ quy tuyến tính, Đệ quy, Khử đệ quy, recursive, đệ quy nhị phân, đệ quy hỗ tương

Related Posts
Previous
« Prev Post