#include <stdio.h>
int main()
{
int a[10][10] = {};
int i;
int j;
//给对角线,首列元素赋值为1
for(i=0; i<10; i++){
for(j=0; j<=i; j++){
if(i==j || j==0){
a[i][j] = 1;
}else{
a[i][j] = a[i-1][j] + a[i-1][j-1]; //网友的更佳
}
}
}
/*
//内部元素的推导赋值
for(i=2; i<10; i++){
for(j=1; j<i; j++){
a[i][j] = a[i-1][j] + a[i-1][j-1];
}
}
*/
//输出二维数组,三角形部分数值
for(i=0; i<10; i++){
for(j=0; j<=i; j++){
printf("%-4d", a[i][j]);
}
printf("\n");
}
return 0;
}
- 思路
观察杨辉三角的规律
1采取对应的数据结构:二维数组
现在感觉数据结构真的强,有些问题,没有对应的数据结构根本解不出
2给对应位置赋初值
3根据已有值推导出剩余值
用表达式表示出来 - 杨辉三角这题让我打开的了眼界,
懂得了数据结构的妙用
有些题没做过,是我怎么也解不出的————>所以要努力刷题