杨辉三角:
1
1 1
1 2 1
1 3 3 1
此题的解决思路为:创建一个二维矩阵,将第一列初始化为1(arr[i][1]),将对角线初始化为1(arr[i][j]--->i=j)。
当行数大于2,列数大于1时,中间部分的值为同一列上一行的值与前一列上一行的值相加。
具体代码如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int arr[20][20] = {0};
int i = 0;
int j = 0;
for (i = 1; i < 20; i++)
{
for (j = 1; j <= i; j++)
{
if (i == j)//对角线
{
arr[i][j] = 1;
}
if (j == 1)//第一列
{
arr[i][j] = 1;
}
if (i >= 2 && j>1)
{
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
}
//打印该二维数组
for (i = 1; i < 20; i++)
{
for (j = 1; j <= i; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
system("pause");
return 0;
}
1214

被折叠的 条评论
为什么被折叠?



