1.问题描述
杨辉三角是一个经典的例子,要求打印以下形状的数字:
1
1 1
1 2 1
1 3 3 1
以此类推,可以打印很多行
2.问题分析
这个三角形是分三种情况,第一种是每一行的第一个即arr【i】【0】的数字都为1,第二种是每一行和每一列相等的数字为一 ,第三种情况是其余的每一个数都可以看成是arr【i-1】【j-1】和arr【i-1】【j】的和。然后了解情况之后,遍历这个二维数组。
#include<stdio.h>
#include<windows.h>
#include<math.h>
#pragma warning (disable:4996)
int main()
{
int arr[5][5];
int i = 0;
int j = 0;
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
arr[i][0] = 1;
if (i ==j) //切记这里的==,而不是=,一定记得,记得,记得
{
arr[i][j] = 1;
}
else{
arr[i][j] = (arr[i - 1][j - 1] + arr[i - 1][j]);
}
}
}
for (i = 0; i < 5; i++)
{
for (j = 0; j <= i; j++)
{
printf("%d", arr[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}