JavaScript循环练习题

问题:

1. 一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米。
 1 var h = 0.0001;
 2     var i = 1;
 3     while(true){
 4         h = h * 2;
 5         i++
 6         if(h > 8848){
 7             break;
 8         }
 9     }
10     console.log(i);
2. 有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问8个月后有多少对兔子,幼兔、小兔、成兔对数分别是多少。
 1 var m = 8;
 2     var baby = 1;       // 幼兔
 3     var small = 0;      // 小兔
 4     var adult = 0;      // 成兔
 5     for(var i=1;i<=m;i++){
 6         if(i === 1){
 7             baby = 1;       // 幼兔
 8             small = 0;      // 小兔
 9             adult = 0;      // 成兔
10         }else{
11             // 当月都是根据上一个月的兔子成长得到的
12             var prevB = baby;
13             var prevS = small;
14             var prevA = adult;
15             // 小兔长成成兔并生下一对幼兔 + 之前的成兔每个月都在生
16             baby = prevS + prevA;
17             // 上个月的幼兔
18             small = prevB;
19             // 上个月的小兔 + 上个月现有的成兔
20             adult = prevS + prevA;
21         }
22     }
23     console.log(baby);
24     console.log(small);
25     console.log(adult);
26     console.log(baby+small+adult);
3. 羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能
 1 穷举法
 2     var n = 0;
 3     for(var i=1;i<=200/15;i++){
 4         for(var j=1;j<=200/3;j++){
 5             for(var k=1;k<=200/2;k++){
 6                 if(i*15 + j*3 + k*2 === 200){
 7                     n++;
 8                     console.log("羽毛球拍"+ i +"个,球"+ j +"个,水"+ k +"个");
 9                 }
10             }
11         }
12     }
13     // 正好花完
14     console.log(n);
15     
4. 球从100米的高度落地,每次落地弹起原高度的一半再落下,求在第10次落下时,共经过了多少米?第10次的反弹了多高?
1 var h = 100;
2     var sum = 100;
3     for(var i=0;i<10;i++){
4         h *= 0.5;
5         sum = sum + h + h;
6     }
7     console.log(sum);       // 299.8046875
8     console.log(h);         // 0.09765625
5. 猴子吃桃:第一天有若干个桃子,每天吃掉所有现存桃子的一半再多一个,第10天只剩1个,请问第一天一共有多少桃?
1 var n = 1;
2     for(var i=1;i<10;i++){
3         n = (n + 1) * 2;
4     }
5     console.log(n);     // 3070

 持续更新中...

posted @ 2020-05-06 21:54  D_Ming  阅读(385)  评论(0)    收藏  举报