解题思路
我们可以杨辉三角看做是一个二维数组,分别有行和列组成,我们发现规律,第一行以及对角线上的元素全部为1,累加是从第3行第二列开始,比如这个2,就是第二行第一列的元素加上第二行第二列。
源码如下
#include<stdio.h>
int main()
{
int arr[10][10] = { 0 };//定义一个数组
int i = 0;//定义行
int j = 0;//定义列
for (i = 0; i < 10; i++)
{
for (j = 0; j <= i; j++)//这里的j小于等于i,因为j最多到达对角线那里就不用再继续了
{
if (i == j)//将对角线元素置为1
{
arr[i][j] = 1;
}
if (j == 0)//将第一列元素置为1,注意数组下标从0开始
{
arr[i][j] = 1;
}
if (i >= 2 && j >= 1)//进行累加操作
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
}
for (i = 0; i < 10; i++)//打印输出
{
for (j = 0; j <= i; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}