C实现杨辉三角

BC109 杨辉三角

一、描述

KiKi知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣,他想知道杨辉三角的前n行,请编程帮他解答。杨辉三角,本质上是二项式(a+b)的n次方展开后各项的系数排成的三角形。

输入描述:

第一行包含一个整数数n。 (1≤n≤30)

输出描述:

包含n行,为杨辉三角的前n行,每个数输出域宽为5。

示意:

输入:

6

输出:

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

二、思路

1)直角三角形在控制循环条件的时候,一般列数 j <=  i

2)其性质包括:每行的端点数为1, 末尾数也为1;除了端点和末尾每个数等于它左上方和上方的两数之和。

if(i > 1 && j > 0 && j < i)

        {

            arr[i][j] = arr[i-1][j-1]+arr[i-1][j];

        }

三、代码

int main() {

   int num = 0;

   scanf("%d",&num);

   getchar();

   int arr[num][num];

   int i = 0;

   int j = 0;

   for(i = 0; i < num; i++)

   {

    for(j = 0; j <= i; j++)

    {

        arr[i][i] = 1;

        arr[i][0] = 1;

        if(i > 1 && j > 0 && j < i)

        {

            arr[i][j] = arr[i-1][j-1]+arr[i-1][j];

        }

        printf("%5d",arr[i][j]);  //控制了输出域宽为5,不需要额外加空格(观察阳历输出为右对齐)

    }

    putchar(10);

   }

   

    return 0;

}

注意:在控制了输出格式的时候,不需要额外写空格。

你可能感兴趣的:(算法,c语言,开发语言,c++)