1.等腰杨辉三角
图一核心思想:
1.用二维数组保存杨辉三角的数据
2.第0列的所有数据都为1
对角线上的所有元素的值都为1
3.其他元素 ==其上元素 + 其上左边元素 之和
a[i][j] = a[i-1][j] + a[i-1][j-1]
打印图一
#include <stdio.h>
int main()
{
//保存杨辉三角数据
int a[10][7];
int i, j;
for (i = 0; i < 7; i++)
{
//对每一行进行赋值
for (j = 0; j <= i; j++)
{
//第0列与对角线上的数据都为1
if (j == 0 || j == i)
a[i][j] = 1;
else
//其他位置
a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
}
}
for (i = 0; i < 7; i++)
{
for (j = 0; j <= i; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
return 0;
}
打印结果:
打印图二
#include <stdio.h>
int main()
{
//保存杨辉三角数据
int a[10][7];
int i, j;
for (i = 0; i < 7; i++)
{
//对每一行进行赋值
for (j = 0; j <= i; j++)
{
//第0列与对角线上的数据都为1
if (j == 0 || j == i)
a[i][j] = 1;
else
//其他位置
a[i][j] = a[i - 1][j] + a[i - 1][j - 1];
}
}
for (i = 0; i < 7; i++)
{
for (j = 0; j < -i + 6; j++) //打印空格
{
printf(" ");
}
for (j = 0; j <= i; j++)
{
printf("%4d", a[i][j]);
}
printf("\n");
}
return 0;
}
打印结果:
等腰杨辉三角:在图一的基础上,打印三角是,前添加打印空格语句
控制打印出等腰的杨辉三角。
2.杨辉三角递归法
#include <stdio.h>
int Back_Print(int i, int j)
{
if (j == 0 || i == j)
{
return 1;
}
else
{
return Back_Print(i - 1, j) + Back_Print(i - 1, j - 1);
}
}
int main()
{
//杨辉三角的递归打印
int a[7][7];
int i, j;
int blank = 0;
for (int i = 0; i < 7; i++)
{
for (j = 0; j < -i + 6; j++)
printf(" ");
for (int j = 0; j <= i; j++)
{
printf("%4d ", Back_Print(i, j));
}
printf("\n");
}
return 0;
}
打印结果:
文章介绍了使用二维数组存储杨辉三角的算法,包括初始化规则(对角线和第一列全为1,其他元素由上方元素之和确定),以及两种打印方法,一种是直接遍历数组,另一种是递归实现。着重展示了如何在打印时添加空格形成等腰效果。








11万+

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



