30/09/2018, 18:03

Hỏi vòng lặp for Javascript

Mình từ học Javascript mà đang làm bài tập cơ bản và đang bí ở đây mong mọi người giúp đỡ.
Mình làm bài tìm tất cả các cách + 3 tờ tiền 500d 200d 100d để đủ 10000d, Mình chạy thì vòng lặp for ngoài cùng chỉ chạy 2 lần, mình cũng suy nghĩ ra là nó + hơn 10000d nên không ra kết quả nữa, mà không biết dùng lệnh gì để gỡ rối nó.

var ketqua4 = 0;
	for(var i = 0;i<=20;i++){
		if(i>=1){
		ketqua4 +=500
		}
		if(ketqua4 == 10000){
		document.write("Có "+i+ " tờ 500 đồng" + "Có " +j+" 200 đồng"+"Có "+k+" 100 đồng"+'<br />');
		ketqua4 = 0;
		}
		for(var j = 0;j<=50;j++){
		if(j>=1){
		ketqua4 +=200
		}
		if(ketqua4 == 10000){
		document.write("Có "+i+ " tờ 500 đồng" + "Có " +j+" 200 đồng"+"Có "+k+" 100 đồng"+'<br />');
		ketqua4 = 0;
		}
			for(var k=1;k<=100;k++){
			if(k>=1){
			ketqua4 +=100
		}
			if(ketqua4==10000){
			document.write("Có "+i+ " tờ 500 đồng" + "Có " +j+" 200 đồng"+"Có "+k+" 100 đồng"+'<br />');
			ketqua4 = 0;
			}
			}
		}
	}
vũ xuân quân viết 20:09 ngày 30/09/2018

em tham khảo link này
http://www.w3schools.com/js/js_break.asp

Cương Nguyễn viết 20:13 ngày 30/09/2018

E làm bài toán phức tạp lên và code không tốt:

Bài toán tương đương với giải phương trình:
500.x + 200.y + 100.z = 10000
Trong đó giới hạn tập x,y,z:
x = {0, …,20}
y = {0, …,50}
z = {0, …,100}

Code đơn giản như vậy thôi:

var result = [];
var numOfResult = 0;

for(var x = 0;x<=20;x++){
	for(var y = 0;y<=50;y++){
		for(var z = 0;z<=100;z++){
			var total = 500*x + 200*y + 100*z;
			if (total === 10000) {
				result[numOfResult++] = {
					x: x,
					y: y,
					z: z,
				};
			}
		}
	}
}

for (var i = 0; i<numOfResult; i++) {
	document.write((i+1) + ". Có "+result[i].x+ " tờ 500 đồng" + "Có " +result[i].y+" 200 đồng"+"Có "+result[i].z+" 100 đồng"+'<br />')
}
Ho Trieu Long Hồ Triệu Long viết 20:07 ngày 30/09/2018

if (total === 10000) {
result[numOfResult++] = {
x: x,
y: y,
z: z,
e không hiểu cái đoạn này. A có giải thích đc k ạ

Cương Nguyễn viết 20:09 ngày 30/09/2018
result[numOfResult++] = {x: x, y:x, z:z}

Tạo ra 1 Object và gán giá trị x cho biến x, y cho biến y, z cho biến z. Sau đó gán Object cho result[numOfResult++]

Đấy là tớ viết tắt, nó tương đương với:

result[numOfResult++] = {};
result[numOfResult++].x = x;
result[numOfResult++].y = y;
result[numOfResult++].z = z;

Thực ra còn tối ưu được đoạn code trên nữa nhưng bạn cứ làm như vậy là ok rồi.

Bài liên quan
0