js楊輝三角控制檯輸出兩種解法

       1 
      1 1 
     1 2 1 
   1 3 3 1 
  1 4 6 4 1 
1 5 10 10 5 1

........

觀察這樣的一組數,找出規律,用控制檯輸出這樣規律的數

規律:這是楊輝三角,每一行頭尾的數都是1,其餘的數是上一行對應的數字相加。

一.使用遞歸算法。

js代碼如下:


    function combination(m,n){
			if(n == 0) return 1;//第一個數爲1
			else if(m == n) return 1; //最後一個數爲1
			else return combination(m-1,n-1)+combination(m-1,n);//中間的數爲前一行的兩個數相加
		}
		function Print(n){ 
			for( var i = 0 ; i < n ; i++ ){ 
				let arr=[];//用來放第i行的數
				for ( var j = 0 ; j <= i ; j++ ) {
					arr.push(combination(i,j));
				}
				console.log(arr.join(' '));//字符串形式輸出
			}
        }

如運行函數Print(6),則控制檯輸出如下:

二.不使用遞歸

var generate = function(numRows){
    let result=[]
    for(let i=0;i<numRows;i++){
        var arr=[];
        if(i+1==1){
            arr=[1]
            result.push(arr)
            console.log(arr.join(' '))
            continue;
        } 
        if(i+1==2){
            arr=[1,1]
            result.push(arr)
            console.log(arr.join(' '))
            continue;
        }
        for(let j=0;j<=i;j++){
            if(j==0||j==i){
                arr.push(1)
            }
            else{
                arr.push(+(result[i-1][j-1]+result[i-1][j]))
            }
        }
        result.push(arr)
        console.log(arr.join(' '))
    }
    return result
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章