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
持续更新中...

浙公网安备 33010602011771号