前言:
杨辉三角的特点如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
... ...
(1)第一列和对角线上的元素都为1; (2)除第一列和对角线上的元素之外,其他的元素的值均为前一行上的同列元素和前一列元素之和。 因此关键语句是求其他元素。我们设当前元素行为i,列为j?
定义一个二维数组arr[20][20],那么所求元素为arr[i][j]=arr[i-1][j]+arr[i-1][j-1]
话不多说上代码:
int main()
{
int arr[20][20];
int n;
printf("请输入行数:");
scanf("%d", &n);
int i,j;
for (i=0; i<n; i++)
{
for (j = 0; j<= i; j++)
{
if (i==j||j == 0)
{
arr[i][j] = 1;
}
else
{
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("%5d", arr[i][j]);
}
printf("\n");
}
return 0;
}
运行结果如下:
?如果有帮助,点个赞再走啦!
|