Computer >> Máy Tính >  >> Lập trình >> C ++

Đo một lít bằng cách sử dụng hai bình và nguồn cung cấp nước vô hạn trong C ++


Trong bài toán này, chúng ta đưa ra hai bình có dung tích x và y và một lượng nước vô hạn. Nhiệm vụ của chúng tôi là tạo ra một chương trình có thể tính toán chính xác 1 lít trong một bình. Với điều kiện x và y là đồng nguyên tố. Số đồng nguyên tố còn được gọi là nguyên tố tương đối, nguyên tố lẫn nhau là hai số mà có 1 là ước số chung duy nhất của chúng. Vì vậy, điều này ngụ ý rằng gcd ( ước số chung lớn nhất ) là 1.

Ở đây, giả sử chúng ta có hai bình V1 có dung tích x và V2 có dung tích y. Để đo 1 lít bằng hai bình này, chúng ta sẽ đổ đầy bình đầu tiên từ nguồn cấp nước và sau đó đổ sang bình thứ hai. Cứ tiếp tục quá trình này cho đến khi bình V1 chứa 1 lít nước.

Hãy lấy một ví dụ để hiểu vấn đề,

Đầu vào -

V1 =5, V2 =8V1 =5; V2 =0 -> đổ nước từ V1 đến V2 rồi đổ đầy lại.V1 =5; V2 =5 -> đổ nước từ V1 đến V2 rồi đổ đầy lại.V1 =2; V2 =0 -> đổ nước từ V1 đến V2. Bây giờ, V2 đã được lấp đầy, hãy làm trống nó.V1 =5; V2 =2 -> đổ nước từ V1 đến V2 rồi đổ đầy lại.V1 =5; V2 =7 -> đổ nước từ V1 đến V2 rồi đổ đầy lại.V1 =4; V2 =0 -> đổ nước từ V1 đến V2. Bây giờ, V2 đã được lấp đầy, hãy làm trống nó.V1 =1; V2 =0 -> đổ nước từ V1 đến V2 và đổ đầy nước. Ở đây, V1 đo 1 lít nước.

Ví dụ

Chương trình minh họa giải pháp,

 #include  using namespace std; int x, y, V1, V2 =0; int transferWater (int amt1, int amt2) {if (amt1 + amt2  

Đầu ra

 Tàu 1:5 | Tàu 2:0 Tàu 1:5 | Tàu 2:Tàu 1:2 | Tàu 2:0 Tàu 1:5 | Tàu 2:2 Tàu 1:5 | Tàu 2:7 Tàu 1:4 | Tàu 2:0 Tàu 1:5 | Tàu 2:4 Tàu 1:1 | Tàu 2:0