杨辉三角——C实现

6阶杨慧三角如下:

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1

问题:输入只包含一个正整数n(1 <= n <= 30),表示将要输出的杨辉三角的层数。

要求:输出相应层数的杨辉三角,每一层的整数之间用一个空格隔开。

代码:

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int a[30][30];
    int i, j, n;
    scanf("%d", &n);
    for(i = 0; i < n; i++)
    {
        for(j = 0; j <= i; j++)    //杨辉三角是一个下三角方阵
        {
            if(j == 0 || i == j)    //先判断是不是每行的开头或结尾元素
                a[i][j] = 1;
            else         //如果不是开头或结尾元素,那么一定是中间元素
                a[i][j] = a[i-1][j-1] + a[i-1][j];
        }
    }
    for(i = 0; i < n; i++)
    {
        for(j = 0; j <= i; j++)
        {
            if(j == 0)      //输出每行的开头不加空格
                printf("%d",a[i][j]);
            else
                printf(" %d",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}
 
/*在网上找了几篇写杨辉三角代码的,判断的太复杂,在此奉上愚者分析的精简代码!*/

猜你喜欢

转载自www.cnblogs.com/star-491849224/p/10956450.html