我们可以看出杨辉三角的规律为:
1
1 1
1 2 1
1 3 3 1
……
其最左边和最右边的数字都为一,中间的数字等于其上方的两个数字之和。
因此我们可以用二维数组的方式来表示数字。
思路:
1.先表示两边的数字1
if (i == j || j == 0)
{
arr[i][j] = 1;
}
2.再表示中间的数字
else
{
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
最终代码如下:
int main()
{
int row = 0;
int arr[100][100];
scanf("%d", &row);//num行数字
for (int i = 0; i < row; i++)
{
for (int j = 0; j <= i; j++)
{
if (i == j || j == 0)
{
arr[i][j] = 1;
}
else
{
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
printf("%4d ", arr[i][j]);
}
printf("\n");
}
return 0;
}