1. 程式人生 > >for循環和數組練習

for循環和數組練習

練習 [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循環和數組練習