杨辉三角:
1.先了解杨辉三角的结构
第一列和对角线的数字都为1,且每一行的元素都为上一行同一列的元素加上上一行前一列的元素而成。(假如i为行j为列)一个在i j位置的数字就等与( i-1 j的数字)+(i-1 j-1的数字 )
2.开始构思代码,首先杨辉三角就像是一个大的正方形切掉了一半在里面添加数字。
那可以想到这里可以运用行列相同的二维数组,在有数字的地方输出,没数字的地方跳过。
因为总体是一个大正方形,所以采用两个for循环可以输出出一个整体的大正方形。
然后利用if语句,把有数字的地方打印出来,没有数字的跳过。
3.第一列和对角线上都是1
a == b时可以想象正方形的对角线在坐标轴上横坐标和纵坐标是相等的所以 a == b,
b == 0则是因为第一行是都是1,所以b == 0是把1打在第一行。
4.如何打印其他的数字
上面给到公式 一个在i j位置的数字就等与( i-1 j的数字)+(i-1 j-1的数字 )
所以同理运用if语句打印出数字即可
5.最后记得换行,在第二个循环外输出换行符
int main()
{
int a = 0;
int b = 0;
int arr[30][30] = {0};
for (a = 1; a < 12; a++)
{
for (b = 0; b < a; b++)
{
if (a == b || b == 0)
{
arr[a][b] = 1;
printf("%d ", arr[a][b]);
}
else
{
arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
printf("%d ", arr[a][b]);
}
}
printf("\n");
}
return 0;
}