输出杨辉三角的前N行

321 阅读1分钟

输出杨辉三角的前N行
题目描述
输出杨辉三角的前N行(N<10)。

输入
输入只有一行,包括1个整数N。(N<10)

输出
输出只有N行.

样例输入
5

样例输出
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1

解题思路:杨辉三角最两侧的所有值都是1,可以先进行赋值,

然后再利用杨辉三角的规律计算中间的各个数

#include <math.h>
#include <stdio.h>
#include <string.h>
int main()
{
    int n, i, j;
    scanf("%d", &n);
    int p[n][n];
    p[0][0] = 1;
    p[1][0] = 1;
    p[1][1] = 1;
    for (i = 0; i < n; i++)
    {
        p[i][0] = 1;
    }
    printf("1\n1 1\n");
    for (i = 2; i < n; i++)
    {
        printf("1 ");
        for (j = 1; j < i; j++)
        {
            p[i][j] = p[i - 1][j - 1] + p[i - 1][j];
            p[i][j + 1] = 1;
            printf("%d ", p[i][j]);
        }
        printf("1\n");
    }
    return 0;
}

输入8,结果如下图:
在这里插入图片描述