js For循环练习。
一张纸的厚度是0.0001米,将纸对折,对折多少次厚度超过珠峰高度8848米
var i = 1; var height = 0.0001; while(true){ height *= 2; if(height>=8848){ alert(i); break; } i++; }
这个题因为不知道具体对折多少次,所以用while比用for好一点。
羽毛球拍15元,球3元,水2元。200元每种至少一个,有多少可能
羽毛球拍最多买13个 球最多买66个 水最多买100个
i 1~13 j 1~66 k 1~100 var count = 0; for(var i = 1; i <= 13; i++) { for(var j = 1; j <= 66; j++) { for(var k = 1; k <= 100; k++) { if(15 * i + 3 * j + 2 * k == 200) { count++; } } } } alert(count);
要注意是每种至少一样,还有就是花费了200元,所以最后是等于200而不是等于小于200
公鸡2文,母鸡1文,小鸡半文,每种至少一只,100文买100只鸡有多少可能性
//公鸡最多50,母鸡最多100,小鸡最多200
var sum=0 for(a=1;a<=50;a++){ for(b=1;b<=100;b++){ for(c=1;c<=200;c++){ var x=2*a+b+0.5*c; var y=a+b+c; if(x==100&&y==100){ sum++ } } } } document.write(sum);
还是要注意每种至少一直,所以里面设定就是公鸡母鸡和小鸡每种最少为1。总数是为100
凑钱1,2,5凑20元钱有多少可能
var sum=0 for(a=0;a<21;a++){ for(b=0;b<11;b++){ for(c=0;c<5;c++){ var x=a+2*b+5*c if(x==20){ sum++ } } } } document.write(sum);
这个题要注意的是每种钱的数量是没有要求的。所以可以设置为0.和上面两个题一样的,for循环可以。
有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几年后有多少对兔子,幼兔、小兔、成兔对数分别是多少。
幼兔 1 小兔 0 成兔 0
幼兔 0 小兔 1 成兔 0
幼兔 1 小兔 0 成兔 1
幼兔 1 小兔 1 成兔 1
幼兔 2 小兔 1 成兔 2
幼兔 3 小兔 2 成兔 3
幼兔 5 小兔 3 成兔 5
当前月份幼兔 = 上个月的成兔+上月小兔
当前月份小兔 = 上月幼兔
当前月份成兔 = 上月成兔+上月小兔
var month = 6; var yt=1; var xt=0; var ct=0; for(var i = 1; i < month; i++) { var last_yt = yt; var last_ct = ct; var last_xt = xt; yt = last_ct + last_xt; xt = last_yt; ct = last_ct + last_xt; } alert(yt+','+xt+','+ct);
要注意的是给上月的各种兔子的数量设定一个值。每个月的兔子数量是怎么来的要想清楚。