首页 > 代码库 > JS 循环练习
JS 循环练习
规律 大范围套小范围 循环 分支语句 switch case 嵌套 死循环 while(true) 打破循环 break continue while(true)
1.折纸:折多少次和珠穆朗玛峰一样高 1.一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米
var hou = 0.0001; var cishu = 0; for(var i=0;i>=0;i++) { hou = hou*2; if(hou>8848) { cishu = i+1; break; } } alert(cishu);
2.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问8个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少。
幼兔 1 小兔 0 成兔 0 初始值 幼兔 0 小兔 1 成兔 0 第一个月 幼兔 1 小兔 0 成兔 1 第二个月 幼兔 1 小兔 1 成兔 1 第三个月 幼兔 2 小兔 1 成兔 2 第四个月 幼兔 3 小兔 2 成兔 3 第五个月 幼兔 5 小兔 3 成兔 5 第六个月
当前月份幼兔 = 上个月的成兔+上月小兔 当前月份小兔 = 上月幼兔 当前月份成兔 = 上月成兔+上月小兔
这个题重点注意 把这个月的兔子复制给上个月过程 也可以和上面题一样 直接上个月和这个月兔子用统一名称表示
var prevyou = 1; var prevxiao = 0; var prevcheng = 0; var nowyou = 0; var nowxiao = 0; var nowcheng = 0; for(var i=0;i<10;i++) { //该月份的兔子数量 //当前月份幼兔 = 上个月的成兔+上月小兔 nowyou = prevxiao+prevcheng; //当前月份小兔 = 上月幼兔 nowxiao = prevyou; //当前月份成兔 = 上月成兔+上月小兔 nowcheng = prevcheng+prevxiao; //把当前月份的数量转化为上个月的 prevyou = nowyou; prevxiao = nowxiao; prevcheng = nowcheng; } alert(nowyou); alert(nowxiao); alert(nowcheng);
3.羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能
羽毛球拍最多买13个 球最多买66个 水最多买100个
var sl=0; for(var i=1;i<14;i++) { for(var j=1;j<67;j++) { for(var k=1;k<101;k++) { if(i*15+j*3+k*2==200) { sl++; } } } } alert(sl);
4.括号里面只能放加或减,如果要使等式成立,括号里面应该放什么运算符 12()34()56()78()9 = 59
1+2 1+ +1*2 5-10 5+ -1*10 (注意 :灵活运用1和-1 加25可以看作+1*2 5 减25可以看作+(-1)*2 5;同理乘除也一样)
循环未必是多次 可能只循环两次 也可能只循环1次 如下
for(var i=-1;i<2;i=i+2) { for(var j=-1;j<2;j=j+2) { for(var k=-1;k<2;k=k+2) { for(var l=-1;l<2;l=l+2) { if(12+i*34+j*56+k*78+l*9==59) { alert(i+"|"+j+"|"+k+"|"+l); } } } } }
JS 循环练习