目录
前言
之前有读者说,每次看到输出三角形都拿捏不准
本篇文章,一定会让大家豁然开朗,看到输出三角形再也不用慌了
ps:本文使用的是C语言,不论什么语言实现方式都是一样的
🏠我的主页:我的主页
一. 题目类型📝
本章节可以解决一下类似的问题

二. 思路🤔
这里相当于解决这两空
因为其他的,一般都会写
int main()
{
int i, j, num;
printf("请输入层数\n");
scanf("%d", &num);
//控制输出多少层
for(i = 0; i < num; i++)
{
//输出空格
for(j = 0; j < 1️⃣; j++)
{
printf(" ");
}
//输出星号
for(j = 0; j < 2️⃣; j++)
{
printf("*");
}
printf("\n");
}
getch();
}
碰到这一类题,可以将这个大问题,分解成两个个小问题:
- 空格的个数怎么输出
- 星号的个数怎么输出
现在就从这步详细来分析
为了更好的显示,先将空格换成横杠

1. 空格的输出⏹️
代码中一般控制输出空格的是从0开始的,那么可以这样分析

当 j 为0时,输出4个空格
当 j 为1时,输出3个空格
·····
因为这里演示的5层的,所以num为5
那就要将这些可以用的看看能不能被自己利用
可以找到规律:(总数)sum - j - i
因为每过一轮,控制总体的 i 就会加1,而空格也会减少1,所以可以直接减 i
这个相对来说,还是容易理解的,一定要在草稿纸上画一下这个图,然后找规律
2. 星号的输出⭐

当 j 为0时,输出1个星号
当 j 为1时,输出3个星号
····
这里就要用到一个点斜式公式


第一行可以定位 x 轴的两个值,左边的 0 是x1,右边的 1 是x2
第二行可以定为 y 轴的两个值,左边的 1 是y1,右边的 3 是y2
再用求斜率 k 的公式,求得斜率k
再取x1 和 y1 或者 x2 和 y2 带入公式
就可以求得对于的y的式子了
再将 x 变成 i 即可
即: 2 * i - 1
三. 成品✅
int main()
{
int i, j, num;
printf("请输入层数\n");
scanf("%d", &num);
for(i = 0; i < num; i++)
{
for(j = 0; j < num - i - 1; j++)
{
printf(" ");
}
for(j = 0; j < 2 * i + 1; j++)
{
printf("*");
}
printf("\n");
}
getch();
}
这道题的解法可以记一记,这样再碰到类似的题,就可以自己推出来了
遇到没有什么头绪的题,一定要画图,找到其规律
画图,离成功又进一步 😊
525

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



