杨辉三角是中国数学史上的一个伟大成就。
代码中有完整注释(有两个,原理相同)
//杨辉三角--属于等腰三角形
#include <stdio.h>
#include <stdlib.h>
#define ROW 10
#define COL 10
int main()
{
int a[ROW][COL] = {0};//定义了一个 10行10列的空数组
int i = 0, j = 0;//gei for循环提供
for (i = 0; i < ROW; i++)//行
{//两个腰都是 1
a[i][0] = 1;//定义 每行的 第一个 都是 1
a[i][i] = 1;//定义 每行的 最后一个 都是 1
}
for (i = 2; i < ROW; i++)//行
{
for (j = 1; j <= i; j++)//列,每列 第几行 就有几次循环
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];//这一行的 等于 上一行的 对应的那个 加上 上一行对应的前一个
}
}
for (i = 0; i < ROW; i++) //行
{
for (j = 0; j <= COL - i; j++) //列(根据空格个数,一共几列 第一行就有几个空格,第二行少一次,依次类推)
{
printf(" "); //打印空格
}
for (j = 0; j <= i; j++)//列
{
printf("%3d ", a[i][j]);
}
printf("\n");
}
return 0;
}
代码2:
#include <stdio.h>
#define N 10
int main()
{
int arr[N][N] = {0};//定义一个数组
int i = 0;
int j = 0;
for(i=0;i<N;i++)//行
{
for(j=0;j<N-i;j++)//列
{//打印空格啊
printf(" "); //空格个数测试出来的,跟底下的占多少位一样
}
for(j=0;j<=i;j++)
{
if((j==0)||(j==i))//每行的第一个 和 最后一个 都是1 ==> //第i行的 第一个 和 第i个 都是1
{
arr[i][j] = 1;
}else{//其他位置的数 等于他头顶的数 和头顶的前一个数 之和
arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
}
printf("%4d",arr[i][j]);//所占位置 测试得出
}
putchar(10);//打完一层 回车换行
}
return 0;
}