杨辉三角的算法实现:
题目:按以下格式打印杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
…
初步想法可以采用二维数组来实现:
- 定义a[N][N];
- a[i][j]=a[i-1][j-1]+a[i-1][j];
- 初始化:a[i][1]=1,a[i][i]=1;
代码实现:
#include<stdio.h>
#define N 10
int main()
{
int a[N][N] = {0};
for (int i = 0; i < N;i++)
{
for (int j = 0; j <= i; j++)
{
if (j == 0 || j == i)
{
a[i][j] = 1;
}
else
{
a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
}
printf("%4d", a[i][j]);
}
printf("\n");
}
return 0;
}
运行结果:
分析:
这个算法较为简单,只是是用来二维数组,然后嵌套for循环。我觉得也可以使用树形结构,二叉树的方式来实现。