Click để phóng to.
Giải thích :
Bài này mình dùng 3 vòng lặp (loop) để co x, y, z chạy từ 1 đến 100. Bắt đầu từ vòng lặp nhỏ nhất thì giá trị lúc đầu cả 3 cái x y z đều = 1. Dần dần cho Z chạy từ 1 tới 100, nếu biểu thức x + y + z = 100 và 5*x + 3*y + z/3 = 100 thì in ra x y z là giá trị cần tìm. Nếu Z đạt đến giá trị 100 thì vòng lặp thứ 2 có Y sẽ tăng 1 đơn vị (Y = 1 trở thành Y = 2) và vòng lặp nhỏ nhất (thứ 3) sẽ trở về Z = 1. Tiếp tục tìm kiếm cho đến khi vòng lặp thứ 2 có giá trị Y = 100 thì vòng lặp ngoài cùng (thứ 3) sẽ tăng 1 đơn vị ( X = 1 sẽ lên X = 2 ). Lúc này Y trở về 1 và Z trở về 1. Khi X lên tới 100 thì kết thúc chương trình.
* Mình cho cả 3 vòng lặp chạy tới 100 cho dễ hiểu. Thực tế X chẳng bao giờ hơn được 20. Y không hơn được 33 và Z không hơn được (100 - X - Y).
* Đơn giản hơn có thể hiểu như sau :
X = 1
Y = 1
Z = 1
Biểu thức ? Sai -> Z = 2
Biểu thức ? Sai -> Z = 3
Biểu thức ? Đúng ( giả sử nó đúng ) -> In ra X Y Z -> Z = 4
Biểu thức ? Sai -> Z = 5
...
Biểu thức ? Sai -> Z = 100. Z = 100 ? Đúng -> Y = 2; Z = 1
Với :
X = 1
Y = 2
Z = 1
Tiếp tục Biểu thức ? Sai -> Z = 2
...
Y = 100 ? Đúng -> X = 2; Y = 1 ; Z = 1;
blah blah blah
* Đơn giản hơn có thể hiểu như sau :
X = 1
Y = 1
Z = 1
Biểu thức ? Sai -> Z = 2
Biểu thức ? Sai -> Z = 3
Biểu thức ? Đúng ( giả sử nó đúng ) -> In ra X Y Z -> Z = 4
Biểu thức ? Sai -> Z = 5
...
Biểu thức ? Sai -> Z = 100. Z = 100 ? Đúng -> Y = 2; Z = 1
Với :
X = 1
Y = 2
Z = 1
Tiếp tục Biểu thức ? Sai -> Z = 2
...
Y = 100 ? Đúng -> X = 2; Y = 1 ; Z = 1;
blah blah blah
Không có nhận xét nào:
Đăng nhận xét