上個星期,小熙有幸去藝龍網面試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