Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 22 kết quả

Đề tài: thuật toán tìm ước số chung lớn nhất

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

    Mặc định thuật toán tìm ước số chung lớn nhất

    bạn nào chỉ cho mình thuật toán tìm USCLN của 3 số với, 2 số mình bít rồi nhưng 3 số nghĩ mãi ko ra.

  2. #2
    Ngày gia nhập
    03 2009
    Nơi ở
    Ở địa ngục
    Bài viết
    630

    Tìm UCLN n số là tìm UCLN của UCLN n-1 số với số còn lại.
    Bạn thử xem.
    chúc bạn làm được.

  3. #3
    Ngày gia nhập
    12 2009
    Bài viết
    142

    uoc so chung va boi so chung luon ne ban:

    Code:
    #include <stdio.h>
    #include<conio.h>
    
    unsigned USCLN (unsigned n, unsigned m)
    {
      while (n != 0 && m != 0)
        if (n>m)
          n -= m;
        else
          m -= n;
      if (n == 0)
        return m;
      else
        return n;
    }
    
    unsigned BSCNN (unsigned n, unsigned m)
    {
      return n * m / USCLN(n, m);
    }
    
    void main()
    {
      unsigned n, m;
    
      printf("\nNhap hai vao so nguyen duong : ");
      scanf("%u%u", &n, &m);
      printf("\nUSCLN cua %u va %u = %u", n, m, USCLN(n,m));
      printf("\nBSCNN cua %u va %u = %u", n, m, BSCNN(n,m));
      getch();
    }

  4. #4
    Ngày gia nhập
    03 2009
    Nơi ở
    Tứ xứ trên đất sài thành
    Bài viết
    60

    Code:
    unsigned USCLN (unsigned n, unsigned m)
    {
      while (n !=m)
          if (n>m)
              n -= m;
          else if(m>n)
              m -= n;
        return m;//hay return n;
    }
    Mình xin sửa lại hàm USCLN(unsigned n,unsigned m);-->minh nghĩ bạn tinhthanhhiepsi9x bị nhầm chổ hàm USCLN.

    Càng Học Càng Ngu!!!Kiến thức thì vô tận con người thì vô biên thời gian thì vô đối????...

  5. #5
    Ngày gia nhập
    12 2008
    Bài viết
    235

    Cách tìm UCLN của 3 số nguyên dương:
    C Code:
    1. #include "stdio.h"
    2. #include "conio.h"
    3.  
    4. unsigned int USCLN(unsigned int n1,unsigned int n2,unsigned int n3)
    5. {
    6.     unsigned int kq;
    7.     kq=(n1<=n2&&n1<=n3)?n1:(n2<=n1&&n2<=n3)?n2:n3;
    8.     while((n1%kq)||(n2%kq)||(n3%kq)) kq--;
    9.     return kq;
    10. }
    11.  
    12. void main()
    13. {
    14.     int n1,n2,n3;
    15.     printf("Nhap vao 3 so nguyen duong:");
    16.     scanf("%d%d%d",&n1,&n2,&n3);
    17.     printf("UCLN:%d",USCLN(n1,n2,n3));
    18.     getch();
    19. }

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

    Mặc định thuật toán tìm ước số chung lớn nhất

    PHP Code:
    int UCLN(int a,int b)
        {
            return (
    b==0)?a:UCLN(ba%b);
        }
    int ucln3(int a,int b,int c)
        {
            return 
    UCLN(UCLN(a,b),c)
        } 
    ^_,^
    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
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    841

    anh langman giải thích dùm em phần (b,a%b) hoạt động ra sao với ạ

  8. #8
    Ngày gia nhập
    01 2010
    Nơi ở
    до свидания!
    Bài viết
    1,766

    Đây chính là thuật toán Ơclit để tìm ước chung lớn nhất, tìm ước chung lớn nhất của a và b cũng chính là tìm ước chung lớn nhất của a và phần dư của a chia b (với b khác 0),....Hãy xem thuật toán Ơclit!

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

    Ví dụ

    Tính ước số chung lớn nhất của 91 và 287.
    Trước hết lấy 287 (số lớn hơn trong 2 số) chia cho 91:
    287 = 91*3 + 14 (91 & 14 sẽ được dùng cho vòng lặp kế)
    Nhận xét: bất kỳ số nào chia hết bởi 287 và 91 cũng sẽ chia hết bởi 287 - 91*3 = 14. Tương tự, số chia hết bởi 91 và 14 cũng chia hết bởi 91*3 + 14 = 287. Do đó, ƯSCLN(91,287) = ƯSCLN(91,14). Bài toán trở thành tìm ƯSCLN(91,14). Lặp lại quy trình trên cho đến khi phép chia không còn số dư như sau:
    91 = 14*6 + 7 (14 & 7 sẽ được dùng cho vòng lặp kế)
    14 = 7*2 (không còn số dư, kết thúc, nhận 7 làm kết quả)
    Cuối cùng ta có: 7 = ƯSCLN(14,7) = ƯSCLN(91,14) = ƯSCLN(287,91).





    Giả sử a = bq + r, với a, b, q, r là các số nguyên, ta có:
    ^_,^
    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

  10. #10
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    841

    anh có thể giải thích cho e với 2 số 8 và 3 không ạ?

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

  1. Thuật Toán Nhân 2 Ma Trận Của Strassen?
    Gửi bởi phuonggm trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 23-05-2013, 12:33 PM
  2. Thuật toán và giải thuật tạo serial của IDM [Hướng dẫn chi tiết]
    Gửi bởi luc13aka47 trong diễn đàn Tutorials và Thủ thuật Visual C++
    Trả lời: 4
    Bài viết cuối: 31-05-2012, 06:40 PM
  3. Kỹ thuật C Mô phỏng thuật toán tìm kiếm trong lập trình C
    Gửi bởi c4u.ng0c trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 0
    Bài viết cuối: 28-12-2010, 07:44 PM
  4. Tìm thuật toán đệ quy
    Gửi bởi ahoo125 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 1
    Bài viết cuối: 22-11-2010, 01:04 PM
  5. Cách tính độ phức tạp và so sánh giữa các thuật toán sắp xếp
    Gửi bởi hoangtu_saobang0912 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 25-09-2009, 09:43 PM

Tags của đề tài này

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