使用javascript解决算法题
1.已知数组(12,23,26,45,58,60)是有序的,输入一个数x,将它插入到数组中,保证数组仍然是有序的
//先定义一个数组
var arr=[12,23,26,45,58,60];
//插入随机数
let x=parseInt(Math.random()*10);
arr.unshift(x)
var res=arr.sort((it,i)=>it-i);
console.log(res);
第二种方法:使用 数组名.findIndex(funciton(value))的方法
var arr=[12,23,26,45,58,60];
let x =parseInt(Math.random()*100;
var insert_index = arr.findIndex(function(value){
return value>=x
})
arr.splice(insert_index,0,x)// 因为splice可以删除,替换,
console.log(arr)
2.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
定义分子分母的变量
var f1=2;
var f2=1;
var sum=f1/f2; //始终让分子和分母为f1和f2
for(let i=1;i<=19;i++){
let fn=f1+f2;
f2=f1; //这里注意循环体放的位置
f1=fn;
sum += f1/f2;
}
console.log(sum)
3. 使用循环求2+22+222+2222+22222的值。
let a=2;
let sum=2;
for(let i=1;i<5;i++){
a=a*10+2
sum +=a
}
console.log(sum)