Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 16 kết quả

Đề tài: Tìm ước chung lớn nhất và nhỏ nhất!!!

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

    Question Tìm ước chung lớn nhất và nhỏ nhất!!!

    //Tim uoc chung lon nhat va boi chung nho nhat cua 2 so nguye duong.
    C Code:
    1. #include <stdio.h>
    2. void main()
    3. {
    4.     int ucln, bcnn, i, j, a, b;
    5.     do
    6.     {
    7.         printf("Nhap gia tri nguyen duong cua a = "); scanf_s("%d", &a);
    8.         printf("Nhap gia tri nguyen duong cua b = "); scanf_s("%d", &b);
    9.         if ((a <= 0) || (b <= 0))
    10.             printf("Xin nhap lai tri a va b nguyen duong\n");
    11.     }
    12.     while ((a <= 0) || (b <= 0));
    13.     if ( a > b )
    14.     {
    15.         for ( i = 1; i < b; i++)
    16.             if((a % i == 0) && (b % i == 0))
    17.                 ucln = i;
    18.         j = a;
    19.         while ((j % a == 0) && (j % b == 0))
    20.         {
    21.             bcnn = j;
    22.             j++;
    23.         }
    24.     }
    25.     else
    26.         if ( a < b )
    27.         {
    28.             for ( i = 1; i < a; i++)
    29.                 if((a % i == 0) && (b % i == 0))
    30.                     ucln = i;
    31.             j = b;
    32.             while ((j % a == 0) && (j % b == 0))
    33.             {
    34.                 bcnn = j;
    35.                 j++;
    36.             }
    37.         }
    38.         else
    39.         {
    40.             ucln = a;
    41.             bcnn = a;
    42.         }
    43.     printf("Uoc chung lon nhat cua %d va %d la: %d\n", a, b, ucln);
    44.     printf("Boi chung nho nhat cua %d va %d la: %d\n", a, b, bcnn);
    45.  
    46. }
    Đã được chỉnh sửa lần cuối bởi lethanh : 18-04-2010 lúc 06:00 AM.

  2. #2
    Ngày gia nhập
    04 2008
    Bài viết
    49

    cách này quá dài bạn ơi.
    Vào đây để xem thuật toán ngắn hơn

    http://vi.wikipedia.org/wiki/%C6%AF%...n_nh%E1%BA%A5t

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Thâm sơn cùng cốc
    Bài viết
    824

    Sao làm rắc rối vậy nhỉ
    C++ Code:
    1. #include<iostream>
    2. using namespace std;
    3. //Hàm tìm ước chung lớn nhất của 2 số, với
    4. // mọi cặp a,b không bao giờ chạy quá 4 lần lặp
    5. int UCLN(int a,int b)
    6. {
    7.  while (b!=0)
    8.  {
    9.    int r=a%b;
    10.    a=b;
    11.    b=r;
    12.  }
    13.  return a;
    14. }
    15.  
    16. //Sau đó tìm  bội chung nhỏ nhất của 2 số a,b đơn giản bởi công thức
    17. // a*b/UCLN(a,b)
    18.  
    19. int BCNN(int a,int b)
    20. {
    21.  //Chú ý thực hiện phép chia trước để tránh việc tràn dữ liệu khi 2 số
    22.  //a và b đủ lớn :D
    23.  return a*(b/UCLN(a,b));
    24. }
    25.  
    26. int main()
    27. {
    28.  int a,b;
    29.  cout<<"Nhap a=";
    30.  cin>>a;
    31.  cout<<"Nhap b=";
    32.  cin>>b;
    33.  cout<<"UCLN("<<a<<","<<b<<")="<<UCLN(a,b)<<endl;
    34.  cout<<"BCNN("<<a<<","<<b<<")="<<BCNN(a,b)<<endl;
    35.  system("pause");
    36. }
    PS:Xin lỗi mọi người ,công thức ở trên rồi mà còn viết nhầm ở dưới
    Đã được chỉnh sửa lần cuối bởi Tadius : 19-04-2010 lúc 12:00 AM.

  4. #4
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,990

    Trích dẫn Nguyên bản được gửi bởi Tadius Xem bài viết
    return a*(b/BCNN(a,b));
    hình như ..............



    PHP Code:
    #include<iostream>
    using namespace std;

    int ucln(int a,int b)
        {
            return 
    b?ucln(b,a%b):a;
        }
    long bcnn(int a,int b)
        {
            return 
    long(a)/ucln(a,b)*b;
        }
    void main()
        {
            
    cout<<bcnn(4,6);
            
    system("pause");
        } 
    ^_,^
    Mình là 1 con gà trong công nghệ.
    Nếu mình có nói gì làm bạn không vui thì mong bạn bỏ qua cho, vì cá nhân mình còn gà lắm, và mình có ý tốt thôi.

    Bùi Tấn Quang

  5. #5
    Ngày gia nhập
    04 2010
    Nơi ở
    Thâm sơn cùng cốc
    Bài viết
    824

    Trích dẫn Nguyên bản được gửi bởi langman Xem bài viết
    hình như ..............



    PHP Code:
    #include<iostream>
    using namespace std;

    int ucln(int a,int b)
        {
            return 
    b?ucln(b,a%b):a;
        }
    long bcnn(int a,int b)
        {
            return 
    long(a)/ucln(a,b)*b;
        }
    void main()
        {
            
    cout<<bcnn(4,6);
            
    system("pause");
        } 
    Của cậu bái phục là làm ngắn thật đấy, nhưng mà các bạn mới học khó mà hiểu được. Với lại còn đệ quy nữa. Dân mới học làm bằng tay sao được, khó mà lần theo thuật toán. Nếu sử dụng wiki thì người ta cũng trình bày tránh đệ quy đi.
    Có lẽ mục đích là cái quan trọng, quan trọng ở đây là 2 điểm chính:

    1. Làm cho các bạn mới học có thể dễ hiểu được (tiêu chí quan trong nhất)
    2. Ngắn gọn

    Cái của cậu thì rất ngắn gọn, xong lại gây khó hiểu cho người mới học, nếu xét về mục đích quan trọng nhất thì lại hơi xa rời. Còn nếu như với những người đã học qua rồi thì cách của cậu trong trường hợp này là tốt nhất (mục đích tối ưu là cao nhất)

  6. #6
    Ngày gia nhập
    06 2007
    Nơi ở
    C:\WINDOWS\system32\dllcache\
    Bài viết
    2,990

    Mặc định Tìm ước chung lớn nhất và nhỏ nhất!!!

    Trích dẫn Nguyên bản được gửi bởi Tadius Xem bài viết
    Của cậu bái phục là làm ngắn thật đấy, nhưng mà các bạn mới học khó mà hiểu được. Với lại còn đệ quy nữa. Dân mới học làm bằng tay sao được, khó mà lần theo thuật toán. Nếu sử dụng wiki thì người ta cũng trình bày tránh đệ quy đi.
    Có lẽ mục đích là cái quan trọng, quan trọng ở đây là 2 điểm chính:

    1. Làm cho các bạn mới học có thể dễ hiểu được (tiêu chí quan trong nhất)
    2. Ngắn gọn

    Cái của cậu thì rất ngắn gọn, xong lại gây khó hiểu cho người mới học, nếu xét về mục đích quan trọng nhất thì lại hơi xa rời. Còn nếu như với những người đã học qua rồi thì cách của cậu trong trường hợp này là tốt nhất (mục đích tối ưu là cao nhất)
    tớ thì bái phục cậu nhất ở chỗ kiểu gì cũng nói được, và bái cái kiểu xoa rồi đấm của cậu

    khi đưa ra đơn giản thì nói là : Ko thích những học sinh hùng hục thích học sinh đưa ra cách thông minh

    khi đưa ra ngắn gọn thì kêu là khó hiểu, tớ chưa thấy tài liệu nào nói đệ quy khó hiểu cả, cái này chắc mỗi mình cậu thấy khó hiểu thôi. Khó hiểu vừa chưa hiểu là 2 khái niệm ko giống nhau. Trong tài liệu của thầy Quách Tuần Ngọc và thầy Lê Minh Hoàng đều có nói : đệ quy đưa ra lời giải ngắn gọn và dễ hiểu nhưng ko có tính hiệu quả cao do.... Chắc là 2 thầy ấy nói sai rồi, có lẽ nên chỉnh lý lại tài liệu nhỉ

    P/S :
    tớ thấy cậu reply rồi chả muốn reply nữa nhưng thấy code của cậu đệ quy vô thời hạn , cho vào chạy là overflow nên mới send code lên thôi.
    Cậu chê bài người khác dài dòng nhưng lại phản bác lại bài ngắn gọn hơn của cậu
    ^_,^
    Mình là 1 con gà trong công nghệ.
    Nếu mình có nói gì làm bạn không vui thì mong bạn bỏ qua cho, vì cá nhân mình còn gà lắm, và mình có ý tốt thôi.

    Bùi Tấn Quang

  7. #7
    Ngày gia nhập
    04 2008
    Bài viết
    49

    Của cậu bái phục là làm ngắn thật đấy, nhưng mà các bạn mới học khó mà hiểu được. Với lại còn đệ quy nữa. Dân mới học làm bằng tay sao được, khó mà lần theo thuật toán. Nếu sử dụng wiki thì người ta cũng trình bày tránh đệ quy đi.
    Có lẽ mục đích là cái quan trọng, quan trọng ở đây là 2 điểm chính:

    1. Làm cho các bạn mới học có thể dễ hiểu được (tiêu chí quan trong nhất)
    2. Ngắn gọn

    Cái của cậu thì rất ngắn gọn, xong lại gây khó hiểu cho người mới học, nếu xét về mục đích quan trọng nhất thì lại hơi xa rời. Còn nếu như với những người đã học qua rồi thì cách của cậu trong trường hợp này là tốt nhất (mục đích tối ưu là cao nhất)
    return a*(b/BCNN(a,b));
    bác langman sửa chỗ này cơ mà ....

    @langman : người hỏi học c mà bác viết c++ thế thì ...

  8. #8
    Ngày gia nhập
    03 2010
    Bài viết
    47

    Các bạn cứ cho rằng a > b thế >"<

    Nhỡ mình là người nhập mình nhập a < b thì sao, cả hai bạn trên kia đều sai tất =.="

    PS: mới test lại, xin lỗi bạn langman nhá ^ ^"
    Đã được chỉnh sửa lần cuối bởi free_wind89 : 18-04-2010 lúc 10:46 AM.

  9. #9
    Ngày gia nhập
    04 2010
    Nơi ở
    Thâm sơn cùng cốc
    Bài viết
    824

    Hix. Tớ chỉ góp ý thôi. Thực tình là khi các bạn ấy thực hành đệ quy, có phải là khó hơn nếu làm từng bước rõ ràng hơn vòng lặp không?

    Còn vấn đề mà các bạn mới học không hiểu nổi ở cái tính quay lui của đệ quy, và trả lại giá trị trước đó (nếu truyền tham số). Rắc rối với người mới học là ở chỗ này cơ mà.

    Họ chưa biết còn ta thì biết rồi, người biết rồi nói với nhau rất dễ ,
    còn người đã biết nói cho chưa biết hiểu càng khó.Ấy thế mới có người biết rồi nhưng mà không làm thày giáo được.

  10. #10
    Ngày gia nhập
    04 2010
    Nơi ở
    Thâm sơn cùng cốc
    Bài viết
    824

    Trích dẫn Nguyên bản được gửi bởi free_wind89 Xem bài viết
    Các bạn cứ cho rằng a > b thế >"<

    Nhỡ mình là người nhập mình nhập a < b thì sao, cả hai bạn trên kia đều sai tất =.="
    @free_wind89 viết hàm test lại đi
    a<b thì vẫn chạy như thường tớ đảm bảo đó.

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

  1. Bán chung cư kim văn kim lũ ct12 45m2 cập nhật căn hộ mới nhất
    Gửi bởi dinhhavnl trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 09-12-2013, 05:00 PM
  2. Chung cư vp5 linh đàm cập nhật tiến độ, cập nhật căn hộ mới
    Gửi bởi dinhhavnl trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 06-11-2013, 11:48 AM
  3. Chung cư Kim Văn Kim Lũ CT12 giá rẻ nhất, chênh thấp nhất – Lh 0982.010.719
    Gửi bởi thanhhao8x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 17-10-2013, 04:14 PM
  4. Chung cư 16B Nguyễn Thái Học Hà Đông bán căn đẹp nhất giá rẻ nhất
    Gửi bởi taikhoan005 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 5
    Bài viết cuối: 04-02-2012, 08:26 AM
  5. chung cư ngô thị nhậm,cc ngô thị nhậm ,căn hộ ngô thị nhậm giá bán hợp lý
    Gửi bởi ephat_tt86 trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 11-11-2011, 03:54 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