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

Đề tài: Không dùng đệ quy được trong thuật toán Euclid tìm USCLN

  1. #1
    Ngày gia nhập
    09 2010
    Bài viết
    5

    Angry Không dùng đệ quy được trong thuật toán Euclid tìm USCLN

    Code:
    #include <iostream>
    using namespace std;
    
    int USCLN(int x,int y){
    	if (x%y==0){
    		return y;
    	} else USCLN(y,x%y);
    main(){
           int m,n;
           while (m>0 && n>0){
               cout<<"m,n="; cin>>m>>n;
           }
           if (m>n) cout<<USCLN(m.n)<<endl; else if (m=n) cout<<n<<endl; else cout<<USCLN(n,m)<<endl;
    }
    Mình có hàm tìm USCLN với 2 số nguyên duơng x,y. Không hiểu sai chỗ nào mà không ra kết quả như ý! Mọi người test giúp mình với!

  2. #2
    Ngày gia nhập
    04 2010
    Nơi ở
    Binh Thanh, Hồ Chí Minh, Vietnam, Vietnam
    Bài viết
    504

    Trích dẫn Nguyên bản được gửi bởi axtanh3 Xem bài viết
    Code:
    #include <iostream>
    using namespace std;
    
    int USCLN(int x,int y){
        if (x%y==0){
            return y;
        } else USCLN(y,x%y);
    main(){
           int m,n;
           while (m>0 && n>0){
               cout<<"m,n="; cin>>m>>n;
           }
           if (m>n) cout<<USCLN(m.n)<<endl; else if (m=n) cout<<n<<endl; else cout<<USCLN(n,m)<<endl;
    }
    Mình có hàm tìm USCLN với 2 số nguyên duơng x,y. Không hiểu sai chỗ nào mà không ra kết quả như ý! Mọi người test giúp mình với!
    C++ Code:
    1. int main()
    2. {
    3.     int m,n;
    4.     do
    5.     {
    6.         cout << "m, n= ";
    7.         cin >> m >> n;
    8.     }while (m <= 0 || n <= 0);
    9.  
    10.     if (m > n)
    11.         cout << USCLN(m, n);
    12.     else if (m == n)
    13.         cout << n;
    14.     else
    15.         cout << USCLN(n, m);
    16.  
    17.     cout << endl;
    18.  
    19.     cin.get();
    20.     return 0;
    21. }
    Kết bạn với tôi <3
    Skype: giautm
    Facebook:
    https://fb.com/giautm.duongntt
    Email:
    giau.tmg@gmail.com

  3. #3
    Ngày gia nhập
    09 2010
    Bài viết
    5

    Mặc định ý mình là hàm USCLN

    Trích dẫn Nguyên bản được gửi bởi doicanhden Xem bài viết
    C++ Code:
    1. int main()
    2. {
    3.     int m,n;
    4.     do
    5.     {
    6.         cout << "m, n= ";
    7.         cin >> m >> n;
    8.     }while (m <= 0 || n <= 0);
    9.  
    10.     if (m > n)
    11.         cout << USCLN(m, n);
    12.     else if (m == n)
    13.         cout << n;
    14.     else
    15.         cout << USCLN(n, m);
    16.  
    17.     cout << endl;
    18.  
    19.     cin.get();
    20.     return 0;
    21. }
    ý mình là hàm USCLN ko trả về đúng kết quả ấy!

  4. #4
    Ngày gia nhập
    04 2012
    Bài viết
    42

    C Code:
    1. int USCLN(int x,int y){
    2.     if (x%y==0){
    3.         return y;
    4.     } else USCLN(y,x%y);//sai ở đây
    5. //return  USCLN(y,x%y);
    Sai nhiều chỗ lắm bạn:
    Đầu tiên: Thuật toán đệ quy để tìm ước cung lớn nhất là :
    C Code:
    1. if(a=b) return a;
    2. if(a>b) return UCLN (a -b , b); // a- b ko phai a%b
    3. else return UCLN (a,b-a) ;
    Vậy bạn đã đọc cái này chưa ?
    http://vi.wikipedia.org/wiki/Gi%E1%BA%A3i_thu%E1%BA%ADt_Euclid
    C Code:
    1. while (!silly)
    2.     cout<<"Study everything !";

  5. #5
    Ngày gia nhập
    02 2012
    Bài viết
    5

    bạn ko cần mấy dòng if so sánh m,n đằng sau. chỉ cần cout<<USCLN(m,n) là được.

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

  1. cách tìm đối số trong giải thuật euclid mở rộng tìm số nghịch đảo
    Gửi bởi junkilo trong diễn đàn Thắc mắc chung
    Trả lời: 0
    Bài viết cuối: 05-06-2012, 08:12 PM
  2. Thuật toán để tìm uscln của hai số nguyên dương trong C#?
    Gửi bởi chuttrum trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 23-06-2011, 08:03 PM
  3. Giải thuật Euclid mở rộng tìm số nghịch đảo
    Gửi bởi trieutulonga trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 26-04-2011, 09:02 AM
  4. Vấn đề nhỏ về thuật USCLN
    Gửi bởi gachip trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 04-08-2009, 11:57 AM
  5. Dùng đệ quy tìm USCLN
    Gửi bởi co7seo trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 23-06-2009, 03:59 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