首页 > 代码库 > 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);
View Code

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 循环练习