30/09/2018, 18:17

Giúp em hiểu đoạn code C++ này

Giải thích hộ em đoạn code tìm ước chung lớn nhất với, khó hiểu quá! thank mấy bác trước.

#include<iostream>
#include<cmath>
using namespace std;
int main()
        {            
            int a,b;
			cout<<" Nhap vao hai so nguyen a ,b: "<<endl;
			cin>>a>>b;           
            if (a==0 ||b==0)
                return a+b;
            while (a !=b)
            {
    	         if(a>b)
		{
				
                  a=a-b;
        	 }
		else
            	{
			
                     b=b-a;
        	}
        	}
       	     cout<<a;
    	}
Lê Huy viết 20:30 ngày 30/09/2018

Bạn có thể giả sử số a = 16 , b =12 để hiểu được giải thuật mà bạn

Trịnh Minh Cường viết 20:32 ngày 30/09/2018

Nhập vào 2 số nguyên a,b.
Sau đó kiểm tra là a hoặc b có bằng 0 hay không, nếu một trong 2 số bằng 0 thì trả về số còn lại (nó cũng chính là ước chung lớn nhất của 2 số trong trường hợp đó ), còn nếu không thì nhảy qua tới vòng lặp với điều kiện dừng là a == b, nếu a != b thì vào trong vòng lặp, kiểm tra xem a > b hay không, nếu đúng thì a = a - b, ngược lại thì b = b - a, rồi lại quay lại kiểm tra. Vòng lặp chạy cho đến khi nào a == b thì dừng, rồi trả về giá trị a (hoặc b đều được tại lúc đó 2 thằng đó bằng nhau), giá trị trả về đó chính là ước chung lớn nhất của 2 số ab.

Leng Keng viết 20:30 ngày 30/09/2018

cám ơn bạn nha>::

Bài liên quan
0