for循環(huán)小練習(xí)

1.求1 x 2 x 3 x 4 x ... x 19 x 20的結(jié)果
定義一個變量保存

 var sum=1;
 for(var i =1;i<=20;i++){
    sum=sum*i;
}

2..隨機(jī)產(chǎn)生20個10~50的正整數(shù)存放到數(shù)組中,并求數(shù)組中的最大值,最小值,平均值及各個元素之和

var arr = [];
var max =0;
var min =50;//因為數(shù)組最大就是50所以min最大不能超過50
var sum =0;
for(var i=0;i<20;i++){
    arr[i] = parseInt(Math.random()*40+10);
    sum=sum+arr[i];

    if(max<arr[i]){
        max=arr[i];//如果循環(huán)過程中,arr[i]始終是大于定義的最大值的話,arr[i]就是最大值
    }
    if(min>arr[i]){
        min=arr[i];//同理
    }

}
console.log(max);
console.log(min);
console.log(sum);
console.log(sum/20)

3.生成10個0-50之間的隨機(jī)數(shù),求第二大的值

//法1
var arr=[];
var max =0;//定義一個變量保存最大的值
var max2 =0;//定義變量保存第二大的值
for(var  i=0;i<10;i++){
    arr[i]=parseInt(Math.random()*40+10);
    if(arr[i]>max2){//如果arr中的數(shù)比第二大的數(shù)大
        max2=arr[i];//找出第二大值
    }
    if(max2>max){
        var temp =max2;//定義一個變量保存第二大值
        max2 = max;//max2就是最大值把第二大值跟最大值交換
        max = temp;
    }
}
console.log(max);
console.log(sec)
console.log(arr);


// 法2
var arr=[];
var maxIndex =0;
var sec =0;
for(var  i=0;i<10;i++){
    arr[i]=parseInt(Math.random()*40+10);
    if(arr[i]>arr[maxIndex]){
        maxIndex=i;
    }
}
for(var i=0;i<10;i++){
    if(i != maxIndex){
        if(arr[i]>sec){
            sec=arr[i];
        }
    }
}
console.log(arr[maxIndex]);
console.log(sec);
console.log(arr);

4.求所有三位數(shù)的各個位上的數(shù)值之和出現(xiàn)的次數(shù)。

如 345 和值 3+4+5 = 12。 最小和值是1(100的和值),最大和值是27(999的和值)。統(tǒng)計和值1-27各出現(xiàn)了多少次

 var arr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
    for(var i=100;i<=999;i++){
    var g = parseInt(i%100%10/1);
    var s =parseInt(i%100/10);
    var b =parseInt(i/100);
    var a =g+s+b;
    arr[a]++;
 }

  var arr=[];
  for(var i=0;i<27;i++){
    arr[i]=0;
  }
  for(var i=100;i<1000;i++){
     var g = parseInt(i%100%10/1);
     var s =parseInt(i%100/10);
     var b =parseInt(i/100);
     var sum=g+s+b;
     arr[sum-1]++;
  }
  for(var i=0;i<27;i++){
    console.log("和值"+(i+1)+"出現(xiàn)次數(shù):"+arr[i]);
}

5.隨機(jī)十萬個100 - 500之間的數(shù)。求每個數(shù)出現(xiàn)的次數(shù)

  var arr =[]; // 用一個容器保存所有數(shù)出現(xiàn)的次數(shù)
  var countArr = [];// 因為共有400個,所以創(chuàng)建數(shù)組,并且讓數(shù)組的所有值初始都等于0
  for(var i =0;i<400;i++){
      countArr[i]=0;
  }
  // 遍歷所有的數(shù),
  for(var i=0;i<100000;i++){
      arr[i]=parseInt(Math.random()*400+100);
      countArr[arr[i]-100]++;
  }

6.耶穌有13個門徒,其中有一個就是出賣耶穌的叛徒,請用排除法找出這位叛徒:13人圍坐一圈,從第一個開始報號:1,2,3,1,2,3凡是報到“3”就退出圈子,最后留在圈子內(nèi)的人就是出賣耶穌的叛徒

    var count = 0;
    var arr = [1,1,1,1,1,1,1,1,1,1,1,1,1];
    var p = 0;
  for(var i = 0; i < arr.length; i++){
        // 只有當(dāng)內(nèi)容為1的人才可以報數(shù)+,內(nèi)容為0代表已經(jīng)出圈,不可以報數(shù)。
        if (arr[i]!=0) {
            // 報數(shù),+1
            count++;// 報數(shù)為4的時候,要變?yōu)?。123123123
        
        if (count ==  4){
            count = 1;
        }
        // 報數(shù)為3的人,會被踢出圈子。踢出圈子的人內(nèi)容要標(biāo)記為0;
        if (count == 3) {
            arr[i] = 0;
            // 每出圈一個人記錄。只剩最后一個人的時候退出循環(huán)。
            p++;
            if (p == arr.length - 1) {
                break;
            }
        }
    }
        // 報數(shù)進(jìn)行到最后一個人的時候,要回到第一個人繼續(xù)報數(shù)。
        if (arr.length - 1 == i) {
            i = -1;
        }
    }
         console.log(arr);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容