Pascal's Triangle

来源:互联网 发布:coc女王数据 编辑:程序博客网 时间:2024/06/06 09:13

Given numRows, generate the first numRows of Pascal’s triangle.

For example, given numRows = 5,
Return

[
[1],
[1,1],
[1,2,1],
[1,3,3,1],
[1,4,6,4,1]
]

/*************************************************************************    > File Name: pascal.c    > Author: Mandagod    > Blog: http://blog.csdn.net/mandagod    > Mail: manda2003@163.com    > Created Time: 201607月09日 星期六 225246************************************************************************/#include<stdio.h>/** * Return an array of arrays. * The sizes of the arrays are returned as *columnSizes array. * Note: Both returned array and *columnSizes array must be malloced, assume caller calls free(). */int** generate(int numRows, int** columnSizes) {    *columnSizes = (int*)malloc(sizeof(int) * numRows);    int** res = (int**)malloc(sizeof(int*) * numRows);    int i, j;    for (i = 0; i < numRows; i++) {        (*columnSizes)[i] = i+1;        res[i] = (int*)malloc(sizeof(int) * (i + 1));         res[i][0] = res[i][i] = 1;         for(j = 1; j < i; j++)            res[i][j] = res[i - 1][j - 1] + res[i - 1][j];        }    return res;}int test(int numRows) {    printf("numRows: %d\n", numRows);    int i, j, k;    int*len;    int** a = generate(numRows, &len);    for (j = 0; j < numRows; j++) {        printf("row%d:%d length", j, len[j]);        printf("[");        for(k = 0; k < j + 1; k++) {            printf(" %d", a[j][k]);        }        printf(" ]\n");    }    for(i = 0; i < numRows; i++)        free(a[i]);    free(a);    printf("\n");    return 0;}int main() {    int i;    for (i = 0; i < 6; i++) {        test(i);    }    return 0;}// run resultsnumRows: 0numRows: 1row0:1 length[ 1 ]numRows: 2row0:1 length[ 1 ]row1:2 length[ 1 1 ]numRows: 3row0:1 length[ 1 ]row1:2 length[ 1 1 ]row2:3 length[ 1 2 1 ]numRows: 4row0:1 length[ 1 ]row1:2 length[ 1 1 ]row2:3 length[ 1 2 1 ]row3:4 length[ 1 3 3 1 ]numRows: 5row0:1 length[ 1 ]row1:2 length[ 1 1 ]row2:3 length[ 1 2 1 ]row3:4 length[ 1 3 3 1 ]row4:5 length[ 1 4 6 4 1 ]
0 0