上个星期,小熙有幸去艺龙网面试web前端开发职位,技术经理在面试中,给小熙出了一道数学题。学名杨辉三角。用函数计算出第n行,第m个数值是多少。直接看效果吧前端
让我用函数算出,第n行,第m个数字是什么。做为理科生的小熙,虽然脑子也灵光,但是。这么久不作数学题,何况仍是用函数作出来,当时脑瓜一翁,完蛋了啦,game over了。不会。。。 回来后,我找到难点,其实,最大的难点在于,我不会递归。这一直是个人一个痛点。呵呵了。。。因而,先了解,递归,,我总感受,本身常常淹没的递归里,没法脱身。。。用早就忘记数学的脑子,终于把递归想通了,,因而,用两种方法来实现面试效果:web
// 方法1
function findNum(n,m){
if(m>n){
return false;
}
if(m==1 || m==n){
return 1;
}
if(m==2 || m==n-1){
return n-1;
}
return findNum(n-1,m) + findNum(n-1,m-1);
}
console.log(findNum(7,5)) //15面试
// 方法2
function countNum(n,m){
if(m>n) return false;
switch(m) {
case 1 :
case n :
return 1;
case 2:
case n-1:
return n-1;
default:
return countNum(n-1,m) + countNum(n-1,m-1);
}
}
console.log(countNum(7,5)) //15函数
事实证实,只要通过本身的努力,仍是能够作出来滴。。。嘻嘻。分享出来,但愿对你们有所帮助。blog