楊輝三角js算法


上個星期,小熙有幸去藝龍網面試web前端開發職位,技術經理在面試中,給小熙出了一道數學題。學名楊輝三角。用函數計算出第n行,第m個數值是多少。直接看效果吧

 

讓我用函數算出,第n行,第m個數字是什么。作為理科生的小熙,雖然腦子也靈光,可是。這么久不做數學題,況且還是用函數做出來,當時腦瓜一翁,完蛋了啦,game over了。不會。。。 回來后,我找到難點,其實,最大的難點在於,我不會遞歸。這一直是我的一個痛點。呵呵了。。。於是,先了解,遞歸,,我總感覺,自己經常淹沒的遞歸里,無法脫身。。。用早就忘記數學的腦子,終於把遞歸想通了,,於是,用兩種方法來實現面試效果:

// 方法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

事實證明,只要經過自己的努力,還是可以做出來滴。。。嘻嘻。分享出來,希望對大家有所幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM