杨辉三角形的特点:
(1)第一列和对角线上的元素都为1;
(2)除第一列和对角线上的元素之外,其他的元素的值均为前一行上的同列元素和前一列元素之和。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
**********
本人思路:
先制作外壳
计算外壳之间的数
空格修饰成等腰三角形
#include<stdio.h>
int main()
{
int row = 0;//打印到第几行
scanf("%d", &row);//令他小于50;
int i = 0;//代表行
int j = 0;//代表列
int arr[50][50] = { 0 };
for (i = 0; i < row; i++)
{
arr[i][0] = 1;//每行的第一列肯定都是 1
arr[i][i] = 1;//每行的最后一列肯定都是 1
}
for (i = 2; i <= row; i++)
{
for (j = 1; j <= i - 1; j++)//只需要计算外壳以外的数,所以下标从一开始,到i-1结束
{
//计算的这个数等于它上面的数与上面左边的数之和
arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
}
}
for (i = 0; i < row; i++)
{
//打印前的空格,更美观
for (j = 0; j < row - i; j++)
printf(" ");
for (j = 0; j <= i; j++)
{
printf("%5d ", arr[i][j]);//控制每个数字之间间距
}
printf("\n");//每打印好一行就换行
}
return 0;
}
运行结果:
注释:本人新手,这是我最开始想到的做法。
更优,更简单的可以去看看别的大佬的文章。
推荐:https://blog.csdn.net/qq_35094756/article/details/113485704