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
};