for循環和數組練習
阿新 • • 發佈:2018-06-23
練習 [1] 括號 ons http sum style In com
//公雞2文,母雞1文,小雞半文,每種至少一只,100文買100只雞有多少種可能
var ci =0; for(var g=1;g<50;g++){ for(var m=1;m<100;m++){ for(var x=1;x<100;x++){ if(g*2+m*1+x*(0.5)==100&&g+m+x==100){ ci+=1; console.log("買公雞"+g+"只,母雞"+m+"只,小雞"+x+"只"); } } } } console.log("有"+ci+"種可能");
結果為:
//羽毛球拍15元,球3元,水2元,200元每種至少一個,有多少種可能
js代碼為:
var ci=0;
for(var a=1;a<15;a++){
for(var b=1;b<67;b++){
for(var c=1;c<100;c++){
if(a*15+b*3+c*2==100){
ci+=1;
console.log("買羽毛球拍"+a+"副,球"+b+"個,水"+c+"瓶");
}
}
}
}
console.log("有"+ci+"種可能");
結果:
有一張0.0001米的紙,對折多少次可以達到珠穆朗瑪峰的高度8848
var gao = 0.0001; var c = 0;//對折次數 for(var i = 0;i >= 0;i++){ gao = gao*2;//對折後紙張厚度 c++; console.log(gao); if(gao >= 8848){ break; } } console.log(c); //對折次數
結果:
例子:一個球從100米的高度自由下落,每次落地後反跳回原高度的一半,再落下,求它在第10次落地時,共經過多少米,第10次反彈多高?
js代碼:
//方法一 var h=100; var s=0; var s1=0;//上升總路程 var s2=0;//下降總路程 for(var i=1;i<10;++i){ h=h/2;//每次反彈路程 console.log(h); s1=s1+h; s2=s2+h; s=s1+s2+100;//一共經過路程 console.log(s); } console.log("第十次落地時,共經過"+s+"米"); console.log("第十次反彈時高度為:"+h/2+"米");
結果:
//方法二
var h=100; var sum=0; for(var i=1;i<=10;++i){ sum += h;//上來的總高度 h = h/2;//每次反彈多高 // 第十次不需要反彈 if(i!=10){ sum += h;//下來時的高度 } } console.log(sum); console.log(h);//第十次反彈高度
結果:
js代碼:
var lirun=prompt("請輸入利潤(單位萬元)"); var jiangjin =0; if(lirun<=10){ jiangjin=lirun*0.1; }else if(lirun>10&&lirun<20){ jiangjin=10*0.1+(lirun-10)*0.075; }else if(lirun>=20&&lirun<40){ jiangjin=10*0.1+10*0.075+(lirun-20)*0.05; }else if(lirun>=40&&lirun<60){ jiangjin=10*0.1+10*0.075+20*0.05+(lirun-40)*0.03; }else if(lirun>=60&&lirun<100){ jiangjin=10*0.1+10*0.075+20*0.05+20*0.03+(lirun-60)*0.015; }else{ jiangjin=10*0.1+10*0.075+20*0.05+20*0.03+40*0.015+(lirun-100)*0.01; } console.log("應該發總獎金:"+jiangjin*10000+"元");
結果例:
例子: 九九乘法口訣表
js代碼:
var jieguo=0;//積 //九九表的行 for(var i=1;i<=9;i++){ //九九表的列 for(var j=1;j<=i;j++){ jieguo = i*j;//積 document.write("\t"+i+"*"+j+"="+jieguo);//公式 } document.write("<br>"); }
結果:
例子: 輸入數組,最大的與第一個元素交換,最小的與最後一個元素交換,輸出數組
js代碼:
var str =prompt(‘輸入一串數組‘); var arr =str.split(‘,‘);
//先把最大與最小值定義為第一個元素 var max =arr[0]; var min =arr[0];
//初始化 var sum =0; var sum1 =0; for(var i=0;i<arr.length;++i){
//選出最大的數組元素 if(max <= +arr[i]){ max=arr[i]; sum =i;//找到最大數組元素下標並存儲 }
//選出最小的數組元素 if(min >= +arr[i]){ min=arr[i]; sum1 =i; } } arr[sum]=arr[0];//數組第一個元素與最大的元素交換 arr[0]=max;//最大數存儲在第一個元素位置 arr[sum1]=arr[arr.length-1];//數組最後一個元素與最小的元素交換
arr[arr.length-1]=min;//最小的數給數組最後一個元素
alert(arr);
結果:
例子:
輸入學生個數,每個學生的學號,姓名,三門課成績,計算出平均成績
js代碼:
var num =prompt("輸入學生的數量"); var stu = []; //記錄學生信息 for(var i=0;i<num;i++){ stu[i]=[]; stu[i][0]=prompt( "請輸入學生的姓名"); stu[i][1]=prompt( "請輸入學生的編號"); stu[i][2]=prompt( "請輸入學生的英語成績"); stu[i][3]=prompt( "請輸入學生的數學成績"); stu[i][4]=prompt( "請輸入學生的語文成績"); } var avg =0; for(var i=0;i<num;++i){ //計算成績的和 var sum=0; for(var j=2;j<stu[i].length;j++){ sum +=parseInt((stu[i][j]));//總成績 } avg=sum/(stu[i].length-2);//求平均成績 stu[i].push(avg);//存儲記錄平均成績 alert(stu[i][0]+"的平均成績:"+avg);//輸出每個人的平均成績
註意:
1.變量的作用域就是在大括號之內
2.寫代碼方向,易維護,易擴展,易復用
3.在寫每個語句時,多寫註釋
for循環和數組練習