1. Hi Khách, chúc bạn một ngày nhiều may mắn!

    Hãy TÌM KIẾM trước khi đặt câu hỏi.
    Hãy THÍCH khi thấy hữu ích.
    Hãy PHẢI HỒI nếu chưa hài lòng.

Tìm ước chung lớn nhất

Thảo luận trong 'Hỏi đáp về KTLT' bắt đầu bởi dainam, 25 Tháng hai 2010.

  1. Đăng ngày 25 Tháng hai 2010 #1

    • Member

    dainam

    Số bài viết: 14
    Đã được thích: 0
    Điểm thành tích: 0
    Bạn nào cho mình hỏi thuật toán tìm UCLN của 2 số nguyên dương với, có code thì càng tốt. Thank
  2. Đăng ngày 25 Tháng hai 2010 #2

    • Administrator

    Phú Teiuns

    Status: Funny!
    Số bài viết: 2,843
    Đã được thích: 714
    Điểm thành tích: 113
    Giới tính: Nam
    Nơi ở:
    Q9-TP.HCM
    Có nhiều cách lắm bạn. Ở đây mình sử dụng thuật Euclid
    PHP:
    // tim ucln cua 2 so
    // thuat toan Euclid:
    // ucln(0,b)=b
    //ucln(a,b)=ucln(b%a,a)
    #include<conio.h>
    #include<iostream.h>
    int ucln(int aint b)
    {
        if(
    a==0) return b;
        if(
    b==0) return a;
        if(
    a>b) return ucln(a%b,b);
        else return 
    ucln(b%a,a);
    }
    void main()
    {
    int a,b;
    int kq;
    clrscr();
    cout<<"Nhap so a: ";
    cin>>a;
    cout<<"Nhap so b: ";
    cin>>b;
    kq=ucln(a,b);
    cout<<"Uoc chung lon nhat cua "<<a<<" va "<<b<<" la: "<<kq;
    getch();
    }

    Các file đính kèm:

    • BT2.CPP
      Kích thước:
      451 bytes
      Đọc:
      10
  3. Đăng ngày 25 Tháng hai 2010 #3

    • Administrator

    Phú Teiuns

    Status: Funny!
    Số bài viết: 2,843
    Đã được thích: 714
    Điểm thành tích: 113
    Giới tính: Nam
    Nơi ở:
    Q9-TP.HCM
    1 cách nữa cũng tương tự:
    PHP:
    #include <iostream.h>
    #include <conio.h>

    int ucln(int aint b)
    {
        if(
    b-= = (+= b) - b;
        if(
    == 0) return b;
        else return 
    ucln(bb);
    }

    int main()
    {
        
    int ab;
            
    clrscr();
        
    cout<<"Nhap 2 so: ";
        
    cin>>a>>b;
        
    cout<<"UCLN : "<<ucln(a,b);
        
    getch();
        return 
    0;
    }
    và 1 cách nữa:
    PHP:
    #include <conio.h>
    #include <iostream.h>
    int main()
    {
    int a,b,c;
    int kq;
    clrscr();
    cout<<"Nhap so a: ";
    cin>>a;
    cout<<"Nhap so b: ";
    cin>>b;

    while((
    = (a%b)) != 0)
    {
    b;
    c;
    }
    cout<<"UCLN: "<<b;
    getch();
    return 
    0;
    }
    Chúc bạn thành công!

    Các file đính kèm:

    • BT.CPP
      Kích thước:
      325 bytes
      Đọc:
      19
    • BT.CPP
      Kích thước:
      249 bytes
      Đọc:
      14
  4. Đăng ngày 26 Tháng hai 2010 #4

    • Member

    dainam

    Số bài viết: 14
    Đã được thích: 0
    Điểm thành tích: 0
    Thanks Phú Teiuns nha!
    Cho mình hỏi Phú Teiuns bài tập này với:
    The value of Euler’s number, e, can be approximated using the formula:
    e = 1 + 1/1! + ½! + 1/3! + ¼! + … +1/n!
    Using this formula, write a program that approximates the value of e using a while loop that terminates
    when the difference between two successive approximations is less than 1.0E-6.
  5. Đăng ngày 16 Tháng mười một 2011 #5

    • Administrator

    Nguyễn Tính

    Số bài viết: 352
    Đã được thích: 403
    Điểm thành tích: 63
    Nơi ở:
    Vũng tàu
    còn cách nữa nè.

    PHP:
    #include <iostream.h> 
    #include <conio.h> 
    int ucln(int aint b
    {
         while(
    a!=b)    
          {
                          if(
    a>b)
                                   
    a-=b;
                          else
                                     
    b-=a;
         }
         return 
    a;

    int main()
     {
         
    int ab;
             
    clrscr(); 
        
    cout<<"Nhap 2 so: ";
         
    cin>>a>>b;
         
    cout<<"UCLN : "<<ucln(a,b);
         
    getch();
         return 
    0
    }

Chia sẻ trang này

Từ khóa tìm đến diễn đàn

  1. tim uoc chung lon nhat bang euclid