题意
画出杨辉三角。
思路
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
如上面这个 6 行的杨辉三角,一种比较容易理解的方法是:开一个数组,先把两侧的 1 全部补充完整,然后从第三行开始,坐标为(x,y)的值等于(x-1,y)+(x-1,y-1)的和。最后输出这个数组。这题只需使用三个 for 循环就可以了。
AC 代码 *
#include <stdio.h>
#define MAX 100
int main(){
int a[MAX][MAX] = {0};
int n,i,j;
while (scanf("%d", &n) != EOF ){
for( i = 0; i < n; i++){
for( j = 0; j <= i; j++){
a[i][0] = 1;
a[i][i] = 1;
}
}
for( i = 2; i < n; i++){
for( j = 1; j <= i; j++){
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
for( i = 0; i < n; i++){
for( j = 0; j <= i; j++){
printf("%d", a[i][j]);
printf( j != i ? " " : "\n");
}
}
printf("\n");
}
return 0;
}
* 注:在 HUST 的 Virtual Judge 上测试 AC