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;
}
Bài liên quan
Bạn có thể giả sử số a = 16 , b =12 để hiểu được giải thuật mà bạn
Nhập vào 2 số nguyên a,b.
Sau đó kiểm tra là
a
hoặcb
có bằng0
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ếua != b
thì vào trong vòng lặp, kiểm tra xema > 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àoa == b
thì dừng, rồi trả về giá trịa
(hoặcb
đề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ốa
vàb
.cám ơn bạn nha>::