杨辉三角js算法

上个星期,小熙有幸去艺龙网面试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

相关文章
相关标签/搜索