天天看点

穷举和迭代

通过循环可以解决两类问题:

穷举:在不知道什么情况下才真的是我们需要的结果的时候,只能够让它一个一个的情况都给走一遍

举例:公司给发了150元的购物卡,刚好想去超市购买洗发水(15元)、牙刷(5元)、香皂(2)。只买着三个种类的商品,要求全部花完150元,有多少种买法,每种买法都是各买几样?<br />

<script>

var zong =0;

var sum=0;

for(var x= 0;x<=10;x++)

{

for(var y =0;y<=30;y++)

{

for(var z =0;z<=75;z++)

{

if(x*15+y*5+z*2==150)

{

sum++; ---代表没执行一次就加一

document.write("第"+sum+"种买法:洗发水"+x+"瓶,牙刷"+y+"支,香皂"+z+"块。<br />");

}

}

}

}

</script>

<br />

<br />

迭代:在现有条件下,根据规律,不断求解中间情况,最终推导出结果

折纸问题:纸张厚度0.07mm,现在有一张无限大的纸,问,多少次之后可以超过珠峰(8848m)的高度

<script>

var h =0.07;

for(var i=1;i>0;i++)

{ h*=2

if(h>8848000)

{

alert("总共需要"+i+"次,就可以超过高度为;“+h/1000)

break;

i=-10

}

}

</script>