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: thuật toán tìm ước chung lớn nhất của n số

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

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

    ai biết thuật toán tìm ước chung lớn nhất của n số nhập từ bàn phím không chỉ giúp mình với

  2. #2
    Ngày gia nhập
    09 2010
    Nơi ở
    Hà Nội
    Bài viết
    382

    bạn viết một hàm tìm UCLN của hai số.
    sau đó dùng hàm đấy để xét UCLN của từng cặp một( a[i] && a[i+1]) thì phải

    skype: hvphu2010
    Yahoo: hvphu2010
    Sdt: 0129 609 4567

  3. #3
    Ngày gia nhập
    04 2010
    Nơi ở
    Đà Lạt, Lâm Đồng
    Bài viết
    257

    bố sung thêm. nếu có bất kỳ cặp nào có ucln =1 thì thoát hàm
    Hoa Tử Đinh Hương Phụng Vũ Phi Y

  4. #4
    Ngày gia nhập
    10 2010
    Bài viết
    19

    đọc có vẻ khó hiểu quá hay bạn thử core cho mình tham khảo luôn

  5. #5
    Ngày gia nhập
    08 2010
    Nơi ở
    Moscow, Russia Federation
    Bài viết
    913

    Khó hiểu gì nữa. Hãy tìm thuật toán và tự code lấy một hàm trả về giá trị ước chung lớn nhất của hai số. Giả sử ta có 1 triệu số. Vậy thì ước chung lớn nhất sẽ tìm như sau. Tìm ước chung lớn nhất của hai số đầu tiên, gọi nó là ucln. Sau đó tìm ước chung lớn nhất của ucln và số thứ ba, lấy giá trị mới này gán vào ucln. Quá trình cứ lặp lại như thế cho đến số thứ 1 triệu. Nếu ở một giai đoạn nào đó mà ucln = 1 rồi thì thoát chứ không cần phải tính tiếp.
    Mời các bạn ghé thăm blog cá nhân của tôi

  6. #6
    Ngày gia nhập
    10 2010
    Bài viết
    19

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

    oh có vẻ dễ hiểu hơn một chút rồi đấy để mình thử phát đã

  7. #7
    Ngày gia nhập
    10 2010
    Bài viết
    173

    PHP Code:
    #include "iostream"
    using namespace std;

    void USCLN(int &, int &);

    void main () {
            
        
    int ab;
        
    cout << "Nhap a: ";
        
    cin >> a;
        
    cout << "Nhap b: ";
        
    cin >> b;
        
    USCLN(a,b);
    }

    void USCLN (int &aint &b) {

        
    int uocso 0;

        while (
    != b) {

            if (
    b)
                
    b;
            else
                
    a;

        }
        
    cout << "uoc so chung max: " << << endl;

    Learn how to write, not copy !!!

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

    Trích dẫn Nguyên bản được gửi bởi quyenbnhm Xem bài viết
    ai biết thuật toán tìm ước chung lớn nhất của n số nhập từ bàn phím không chỉ giúp mình với
    Mình đưa ra hai thuật toán quen thuộc nhất
    Thuật toán 1: thuật toán Euclide
    Nguyên tắc: dự vào nhận xét nếu hai số nguyên a, b (a>b) chia hết cho số nguyên q nào đó thì a-b cũng chia hết cho q. Từ đó -> nếu q là WCLN của a và b (a>b) thì q cũng là ƯCLN của (a-b) và b. Do đó ta gán số lớn hơn trong hai số (a-b) và b vào a, số còn lại vào b, rồi lại làm lại quá trình trên. Bạn nhận thấy cứ làm thế mãi thì "kích thước" hai số a, b sẽ ngày một giảm đi. Đến một lúc nào đó a=b thì đó sẽ là ước số chung lớn nhất. Trường hợp xấu nhất là a=b=1.
    Code:
    PHP Code:
    #include<stdio.h>
    #include<conio.h>

    int main(){
        
    int ab;
        
    printf("\n nhap vao hai so a,b: ");
        
    scanf("%d %d", &a, &b);
        while(
    a!=b){
            if(
    a>b)
                
    a=a-b;
            else
                
    b=b-a;
        }
        
    printf("\nUSCLN cua hai so la %d"a);
        
    getch();
        return 
    0;

    Thuật toán 2: mình không biết gọi nó là cái gì, theo cách nó thể hiện có thể gọi nó là thuật toán "trâu bò"
    Nguyên tắc: ƯCLN của hai số không bao giờ vượt quá số bé hơn. Vì vậy, ta dùng một vòng for với một biến i chạy từ số bé hơn về đến 1. Tại mỗi giá trị của i ta làm phép kiểm tra: nếu a, b cùng chia hết cho i thì xác nhận i là ƯCLN và break khỏi for.
    Code:

    PHP Code:
    #include<stdio.h>
    #include<conio.h>

    int main(){
        
    int abimin;
        
    printf("\n nhap vao hai so a,b: ");
        
    scanf("%d %d", &a, &b);
        if(
    a<b)
            
    min=a;
        else
            
    min=b;
        for(
    i=mini>=1i--){
            if(
    a%i==&& b%i==0)
                break;
        }
        
    printf("\nUSCLN cua hai so la %d"i);
        
    getch();
        return 
    0;

    hy vọng giúp ích được cho bạn

  9. #9
    Ngày gia nhập
    09 2010
    Nơi ở
    Linux-Ubuntu
    Bài viết
    217

    PHP Code:
    #include <stdio.h>
    int gcd(int a,int b)
    {
      while(
    a!=b)
    {
      if (
    a>b)
        
    a=a-b;
      else
        
    b=b-a;
     } 
     return 
    a;
    }
    int main()
    {
      
    int i,num[100],number;
      
    printf("input number num :");
      
    scanf("%d",&number);
      for(
    i=0;i<number;i++)
        {
          
    printf("number[%d]: ",i);
          
    scanf("%d",&num[i]);
        }
      for(
    i=0;i<number;i++)
        {
          
    num[i+1]=gcd(num[i],num[i+1]);
        }
      
    printf("the gcd :%d\n",num[number]);
     

    ++Sự Học Không Bao Giờ Là Muộn++
    ---Sướng Thì Ta Làm, Thích Thì Sẽ Được---
    ......Đôi khi bỏ học cũng là một bước đột phá...

    ***HỘI NHỮNG NGƯỜI PHÁT CUỒNG VÌ LINUX***

  10. #10
    Ngày gia nhập
    09 2010
    Nơi ở
    Linux-Ubuntu
    Bài viết
    217

    kết quả thử :
    PHP Code:
    input number num :5
    number
    [0]: 3
    number
    [1]: 6
    number
    [2]: 9
    number
    [3]: 12
    number
    [4]: 15
    the gcd 
    :3
    hc
    @ubuntu:~/Desktop$ ./a
    input number num 
    :5
    number
    [0]: 5
    number
    [1]: 2
    number
    [2]: 4
    number
    [3]: 6
    number
    [4]: 8
    the gcd 
    :1
    hc
    @ubuntu:~/Desktop$ ./a
    input number num 
    :5
    number
    [0]: 2
    number
    [1]: 4
    number
    [2]: 6
    number
    [3]: 8
    number
    [4]: 10
    the gcd 
    :
    ++Sự Học Không Bao Giờ Là Muộn++
    ---Sướng Thì Ta Làm, Thích Thì Sẽ Được---
    ......Đôi khi bỏ học cũng là một bước đột phá...

    ***HỘI NHỮNG NGƯỜI PHÁT CUỒNG VÌ LINUX***

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

  1. Thuật toán tìm bội chung nhỏ nhất trong lập trình C++?
    Gửi bởi dungtimtoinua2008 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 20
    Bài viết cuối: 10-01-2014, 10:31 PM
  2. Giảm thuế thu nhập doanh nghiệp năm 2011, miễn thuế thu nhập cá nhân đến hết năm 2012
    Gửi bởi tailanh8423 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: 28-05-2012, 01:10 PM
  3. Nhận Tìm DVD Ảo Thuật Cho Các Bạn Có Chung Niềm Đam Mê (Update daily)
    Gửi bởi truc4288 trong diễn đàn Giải trí - Thư giãn
    Trả lời: 30
    Bài viết cuối: 25-04-2012, 11:24 AM
  4. Bài tập C++ Viết chương trình nhập số lượng hàng hóa, giá cả, thuế, xuất ra tổng giá, thuế, tổng cộng
    Gửi bởi seit 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: 04-03-2011, 09:04 AM
  5. Hướng dẫn kê khai thuế thu nhập cá nhân, thuế doanh nghiệp 0903034381
    Gửi bởi thngxanhcty 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: 19-05-2010, 02:33 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