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

 

posted @ 2018-01-26 16:47  Carol淋  阅读(155)  评论(0编辑  收藏  举报