Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Một số bài Đệ Quy viết trong C/C++ [Chia sẻ]

  1. #1
    Ngày gia nhập
    08 2010
    Nơi ở
    Hoang Mai Hanoi
    Bài viết
    11

    Talking Một số bài Đệ Quy viết trong C/C++ [Chia sẻ]

    Đệ quy là 1 giải thuật mà trong đó hàm được gọi đệ quy có lời gọi chính nó . Đặc điểm viết code bằng đệ quy là code ngắn , tuy vậy nó sẽ dẫn đến tình trạng gây khó hiểu nên kĩ thuật đệ quy hay bị nhiều người hạn chế sử dụng , tuy vậy trong nhiều trường hợp nó lại làm cho lời giải đơn giản hơn nhiều
    Sử dụng đệ quy cần đặc biệt chú ý đến trường hợp cơ sở . Thiếu nó thì đệ quy sẽ trở thành không có điểm dừng và trở thành vòng lặp vô hạn

    Sau đây mình xin chia sẻ với các bạn một số code đệ quy với một vài dạng bài tiêu biểu
    Nếu có gì sai sót thì các bạn cứ đóng góp ý kiến
    1/ Tính n!
    C++ Code:
    1. long giaiThua(int n)
    2. {
    3. if(n==0) return 1;
    4. else return n*giaiThua(n-1);
    5. }

    2/tính số fibonacci
    C++ Code:
    1. int fibonacci(int n )
    2. {
    3. if(n<=2) return 1;
    4. else return fibonacci(n-1)+fibonacci(n-2);
    5. }
    3/ In xau nguoc ( vd : abc thành cba )
    C++ Code:
    1. string write(string A,int n)  // n là độ dài xâu được truyền vào từ hàm main
    2. {
    3.        if(n==0) cout<<A[0];
    4.        else
    5.        {
    6.             cout<<A[n];
    7.             A[n]+write(A,n-1);
    8.        }
    9. }
    4/ Tìm phần tử max trong mảng
    C++ Code:
    1. int timMax(int A[],int n)
    2. {
    3.      if(n==1) return A[1];
    4.      // tim max bang de quy
    5.      if(n>1)
    6.      {
    7.             int m=timMax(A,n-1);
    8.             if(A[n-1]>m) return A[n-1];
    9.             else return m;
    10.      }
    11.      
    12. }
    5/ Viết số ngược
    C++ Code:
    1. void vietSoNguoc(int n)  // vd viet 123 thanh 312
    2. {
    3.      if(n<=9) cout<<n;
    4.      else
    5.      {
    6.         cout<<n%10;           //
    7.         vietSoNguoc(n/10);   // neu 2 dong nay doi vi tri cho nhau thi chuyen tu viet so nguoc thanh viet so xuoi
    8.      }
    9. }
    6/ Tìm ước số chung lớn nhất của 2 số nguyên
    C++ Code:
    1. int USCLN(int u,int v) // Tim uoc so chung lon nhat cua 2 so u ,v  bang de quy
    2. {
    3.     if(v==0) return u;
    4.     else return USCLN(v,u%v);
    5. }
    7/ Tổng các phần tử trong mảng
    C++ Code:
    1. int sum(int A[],int n) // Mang A , n la so phan tu
    2. {
    3.     int tong=A[n];
    4.     if((n==1)&&(n>0)) return A[1]; // mac dinh mang chay tu 1-> n
    5.     else
    6.     {      
    7.           return tong+sum(A,n-1);    
    8.     }
    9.      
    10. }
    sưu tầm : internet
    Đã được chỉnh sửa lần cuối bởi while : 19-03-2011 lúc 08:43 PM. Lý do: Thêm chi tiết

  2. #2
    Ngày gia nhập
    06 2017
    Bài viết
    1

    code bài 3 chạy = niềm tin và hi vọng à :3
    Code:
    void xau(string a, int z)
    {
    	if (z == 1)
    	{
    		cout << a[0];
    	}else
    	{
    	
    		cout << a[z-1];
    		xau(a, z - 1);
    	}
    		
    }

Các đề tài tương tự

  1. Mảng trên C Help!Bài tập viết hàm trong mảng 1 chiều
    Gửi bởi onelove_1306 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 01-10-2011, 08:45 PM
  2. Bài tập C Viết chương trình liệt kê các giá trị lớn nhất trong mảng 1 chiều
    Gửi bởi quockhang trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 22-09-2011, 05:47 PM
  3. Bài tập C Nhập x, viết hàm chỉ ra vị trí xuất hiện x trong mảng 1 chiều
    Gửi bởi HoangCoi trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 6
    Bài viết cuối: 21-08-2011, 02:15 PM
  4. Nhập mảng một chiều sử dụng hàm radom trong C# viết thế nào?
    Gửi bởi trankien trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 12
    Bài viết cuối: 21-05-2011, 01:02 PM
  5. Viết hàm tìm phần tử xuất hiện nhiều nhất trong mảng 1 chiều các số nguyên?
    Gửi bởi fire_dragon14988 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 46
    Bài viết cuối: 28-08-2010, 05:14 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn