我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出的數(shù)學(xué)問題:雞翁一值錢五察净,雞母一值錢三驾茴,雞雛三值錢一。百錢買百雞氢卡,問雞翁锈至、雞母、雞雛各幾何译秦?
在數(shù)學(xué)中峡捡,我們可以用方程式解答:
設(shè)公雞買x只,母雞買y只筑悴,小雞買z只(或100-x-y)们拙;
那么 x+y+z=100;
且 5 * x + 3 * y + 1/3 * z =100阁吝;
通過簡單的計算可以得知:
x的取值范圍為 0 < x <= 20;
y的取值范圍為 0 < y <= 33砚婆;
z的取值范圍為 0 < z < 100;
接下來就要用for和if語句了;
for(var x = 0;x <=20;x++){
for(var y = 0;y <= 33;y++){
for(var z = 0;z < 100;z++){
if(x + y + z == 100){
if(5*x + 3*y + 1/3*z == 100){
document.write(`公雞${x},母雞${y},小雞${z}`)
}
}
}
}
document.write('<br>')
}
這是我們得到的結(jié)果:
簡單講解一下:
for語句是一種先判斷突勇,后運行的循環(huán)語句装盯。
以第一層for為例:
var 是定義變量的關(guān)鍵字,如果沒有它甲馋,就會定義全局變量埂奈。就好像我們的名字一樣,用來區(qū)分每個人定躏。
x是我們設(shè)的購買公雞的數(shù)量账磺。在JS中他是一個標(biāo)識符,可以理解為一個代號共屈,當(dāng)然也可以換成別的绑谣,但是:第一個字符必須是字母、下劃線或一個美元符號$;
x <=0 是給它劃一個取值范圍拗引。要不然x不受拘束的話for就會無限循環(huán)下去。處理器不太好的童鞋小心電腦死機(jī)幌衣。
x++ 是在本次循環(huán)結(jié)束后矾削,下次循環(huán)開始前賦予x一個新的值。要不然一直重復(fù)同一個值豁护,結(jié)果也一樣哼凯,怪無聊的是吧。關(guān)鍵是同樣會死機(jī)楚里。
三重for循環(huán)里面嵌套兩個if語句断部,是因為要同時滿足“一共買一百只雞”和“一共一百塊錢”這兩個條件,所以班缎。代碼也可以這么寫:
for( var a = 0;a <= 20;a++){
for( var b = 0; b <= 33;b++){
for( var c = 0;c <= 100;c++){
if((a + b + c == 100) && (5*a + 3*b + c/3 ==100)){
document.write('公雞' + a,'母雞' + b,'小雞' + c)
}
}
}
document.write('<br>')
}
結(jié)果是相同的蝴光。
&& 表示 “與” 她渴,他是一個布爾操作符,類似的還有 || “或”蔑祟,! “非”趁耗。
意思就是,必須同時滿足兩個條件才會繼續(xù)往下運行疆虚。
document.writter() 用于將運算結(jié)果打印到網(wǎng)頁上苛败。切記:非字符串要加上引號--"公雞",否則不會顯示径簿。后面的x沒有加罢屈,是因為有 + 號。當(dāng)字符串和非字符串中間有+號時篇亭,+號將執(zhí)行拼接功能儡遮,將他們都轉(zhuǎn)換成字符串。
<br>
換行標(biāo)簽暗赶。
沒有它是介個樣子的:
【JS初學(xué)一周鄙币,如有誤解,還請指出蹂随;如有雷同十嘿,不勝榮幸】