1,求數組最大值
var list=[1,2,3,4,5,6];
//方法一
function getMax(arr){
return Math.max.apply(Math,arr)
}
// console.log(getMax(list));
//方法二
function getMax2(arr){
var max=arr[0];
for(var i=1;i<arr.length;i++){
if(arr[i]>max){
max=arr[i];
}
}
return max;
}
//console.log(getMax2(list));
//方法三:
Array.prototype.max=function(){
return Math.max.apply({},this)
};
//console.log(list.max())
2,求和 0.1+0.2=0.3
/*
* 小數求和
* 0.1 + 0.2 = 0.3
* */
function add(a,b){
if(a&&b){
var r1=a.toString().split('.')[1].length;//看小數點後有幾位
var r2=b.toString().split('.')[1].length;
var m=Math.pow(10,Math.max(r1,r2));//根據小數點後位數來決定乘的倍數,1位是10的一次冪,2位是10的兩次冪
return (a*m+b*m)/m;
}
}
console.log(add(0.1,0.2));
3,斐波那契數列
//1,找規律
//2,找出口
//fb(n) = fb(n-1)+fb(n-2);
function fb(n){
if( n === 1 || n === 2){
return 1
}
return fb(n - 1) + fb(n - 2);
}
4,階乘
//注意兩點:
//1,找規律
//2,找出口,不然會形成死循環
function mul(n){
if(n===1){
return 1
}
return n * mul(n-1)
}