楊輝三角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

相關文章
相關標籤/搜索