一炎疆、簡(jiǎn)單的楊輝三角
1磷雇、找規(guī)律
仔細(xì)觀察楊輝三角的圖形唯笙,你能發(fā)現(xiàn)組成它的數(shù)有什么排列規(guī)律嗎崩掘?
它的前幾層是這樣的:楊輝三角的兩條斜邊都是由數(shù)字1組成的苞慢,而其余的數(shù)則是等于它肩上的兩個(gè)數(shù)之和挽放,以此類推
二辑畦、代碼實(shí)現(xiàn)
1纯出、一言不合上代碼
/*
思路:
1. 第一層循環(huán)控制行數(shù)i : 默認(rèn)[i][0] = 1,[i][i] = 1
2. 第二層循環(huán)控制列數(shù)j : triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
*/
int** generate(int numRows){
int **res = (int **)malloc(sizeof(int*)*numRows);
for (int i = 0; i < numRows; i++) {
res[i] = (int *)malloc(sizeof(int)*(i+1));
res[i][0] = 1;
res[i][i] = 1;
for (int j = 1; j < i; j++) {
res[i][j] = res[i-1][j] + res[i-1][j-1];
}
}
return res;
}
int main(int argc, const char * argv[]) {
printf("楊輝三角\n");
int numRows = 10;
int **res = generate(numRows);
for (int i = 0; i < numRows; i++){
for (int j = 0; j < numRows-i; j++){
// 打印空格
printf(" ");
}
for (int k = 0; k <= i; k++){
//打印數(shù)
printf("%4d ", res[i][k]);
}
printf("\n");
}
return 0;
}