先来说说什么是杨辉三角:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
.......
总结上面的规律,我们可以把他看成是一个二维数组,定义为 arr[i][j] 吧。可以发现每一行的第一个数和最后一个数都是“1”,中间的数字其实是上一行上一列的数加上一行本列的数字,举例:arr[2][1] = arr[1][0] + arr[1][1] 。
//打印杨辉三角
#include <stdio.h>
int main()
{
int i = 0;
int j = 0;
int n = 0;
int arr[10][10];
scanf("%d", &n); //输入n决定你要打印几行杨辉三角
for (i = 0; i < n; i++)
{
arr[i][0] = 1; //给第一个数赋值为1
arr[i][i] = 1; //给最后一个数赋值为1
}
for (i = 2; i < n; i++) //从第二行第二列开始,每个数是上一行上一列的数+上一行本列的数
{
for (j = 1; j < i; j++)
{
arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
}
}
for (i = 0; i < n; i++)
{
for (j = 0; j <= i; j++)
{
printf("%d ", arr[i][j]); //打印每行每列的数构成杨辉三角
}
printf("\n");
}
return 0;
}