杭电-------2032杨辉三角(C语言写)
#include<stdio.h> int a[30][30] = { 0 }; void init() { int i, j; for (i = 0; i < 30; i++) { a[i][0] = 1; a[i][i] = 1; } } void yanghui(int start, int end) { int i, j; for (i = start; i < end; i++) { for (j = 1; j < i; j++) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } } } int main() { int n, m; int max = 0; int i, j; init(); while (~scanf("%d", &n)) { if (n > max) {//为避免重复计算,将之前已经计算的保存下来,当需要输出的大于之前已经保存的最大值时 //才需要重新计算,否则可以直接输出 yanghui(max, n); max = n - 1; } for (i = 0; i < n; i++) { for (j = 0; j <= i; j++) { if (j != i) { printf("%d ", a[i][j]); } else { printf("%d", a[i][j]); } } printf("\n"); } printf("\n"); } return 0; }