1.求1 x 2 x 3 x 4 x ... x 19 x 20的結果
定義一個變量保存
var sum=1;
for(var i =1;i<=20;i++){
sum=sum*i;
}
2..隨機產生20個10~50的正整數存放到數組中,并求數組中的最大值,最小值,平均值及各個元素之和
var arr = [];
var max =0;
var min =50;//因為數組最大就是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];//如果循環過程中,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之間的隨機數,求第二大的值
//法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中的數比第二大的數大
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.求所有三位數的各個位上的數值之和出現的次數。
如 345 和值 3+4+5 = 12。 最小和值是1(100的和值),最大和值是27(999的和值)。統計和值1-27各出現了多少次
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)+"出現次數:"+arr[i]);
}
5.隨機十萬個100 - 500之間的數。求每個數出現的次數
var arr =[]; // 用一個容器保存所有數出現的次數
var countArr = [];// 因為共有400個,所以創建數組,并且讓數組的所有值初始都等于0
for(var i =0;i<400;i++){
countArr[i]=0;
}
// 遍歷所有的數,
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”就退出圈子,最后留在圈子內的人就是出賣耶穌的叛徒
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++){
// 只有當內容為1的人才可以報數+,內容為0代表已經出圈,不可以報數。
if (arr[i]!=0) {
// 報數,+1
count++;// 報數為4的時候,要變為1。123123123
if (count == 4){
count = 1;
}
// 報數為3的人,會被踢出圈子。踢出圈子的人內容要標記為0;
if (count == 3) {
arr[i] = 0;
// 每出圈一個人記錄。只剩最后一個人的時候退出循環。
p++;
if (p == arr.length - 1) {
break;
}
}
}
// 報數進行到最后一個人的時候,要回到第一個人繼續報數。
if (arr.length - 1 == i) {
i = -1;
}
}
console.log(arr);