输出三角形的题型讲解(一文解决)

简介: 本文详解C语言输出三角形的核心思路:将问题拆解为空格数与星号数两个子问题。通过画图找规律,推导出空格数为`num-i-1`、星号数为`2*i+1`,助你彻底掌握此类题型的通用解法。

前言

之前有读者说,每次看到输出三角形都拿捏不准

本篇文章,一定会让大家豁然开朗,看到输出三角形再也不用慌了
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. 空格的个数怎么输出
  2. 星号的个数怎么输出

现在就从这步详细来分析
为了更好的显示,先将空格换成横杠

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();
}

这道题的解法可以记一记,这样再碰到类似的题,就可以自己推出来了

遇到没有什么头绪的题,一定要画图,找到其规律
画图,离成功又进一步 😊

目录
相关文章
|
3月前
|
网络协议 安全 Java
Java网络编程初阶
本文系统讲解Java网络编程基础,涵盖网络三要素(IP、端口、协议)及TCP/UDP核心原理,提供完整发送端与接收端代码实现,并附实操步骤与注意事项,适合初学者入门学习。(239字)
130 1
Java网络编程初阶
|
3月前
|
人工智能 文字识别 前端开发
DeepSeek 终于能看图了!教你免费使用 + 8 大场景实测
DeepSeek V4 Flash Vision 视觉模型全方位测评 + 免费使用方法,8 轮硬核测试涵盖 OCR 识别、身份识别、ASCII 转换、报错截图修复、前端 UI 复刻、逻辑推理,全程对比 Claude Opus 5,看看国产视觉模型 DeepSeek 大肥鱼到底能不能打。
619 0
|
云栖大会 开发者
收到阿里云【乘风者计划】博主证书和奖励
收到阿里云【乘风者计划】博主证书和奖励 2023年2月对我来说是一个很好的开端,因为我在1号就收到了阿里云寄给我的【乘风者计划】博主证书和奖励。好兆头啊! 我收到的是我获得的【技术博主】【星级博主】【专家博主】三个的奖品和证书,一快给我寄过来哒!
3511 2
收到阿里云【乘风者计划】博主证书和奖励
|
19天前
|
人工智能 开发者
Qoder CN 大使计划正式开启|无限创造,等你一起
全年免费积分、优先内测、活动支持与更多共创机会,邀请用 Qoder 把想法变成现实的你。
788 7
|
20天前
|
Web App开发 缓存 人工智能
github一个神级skill:把技术概念做成一台真机器或者任何的科普视频
anatomy 是一款开源AI绘图技能,不画抽象方框箭头,而是将技术概念转化为可拆解、会运动的等距机械装置(如用弹子锁喻缓存、龙门仪喻GPU上下文)。所有配图均由其生成,强调真实几何、精确建模与自动审计,让原理“一眼看懂”。
|
21天前
|
人工智能 自然语言处理 IDE
阿里云Qoder CN是什么?功能详解、Credits计费、CLI配置接入全教程
在选型和落地过程中,有几个关键判断标准与避坑要点。选型上,编程学习者、学生、低频编码人群选择免费社区版即可,永久免费、无月租,每月100 Credits足以支撑日常学习与小型项目迭代;高频个人开发者选择个人专业版或高级版;重度使用用户选择个人旗舰版;研发团队选择团队版;企业组织按数据合规与管控需求选择企业标准版或企业专属版。免费社区版存在功能权限边界:不支持多文件跨工程理解、全仓库批量重构、RepoWiki仓库知识库、Experts专家协作、Subagent多子代理等高阶工程能力,上下文窗口存在合理上限,适合学习、个人小项目,企业级大型工程需升级付费版本。避坑点包括:升级前务必确认旧版ling
355 1
|
3月前
|
Java 程序员 应用服务中间件
Maven之初识与安装
本文详解Maven安装与配置全流程:从基础概念、下载安装、环境变量配置到版本验证,助新手一次理清逻辑、顺利完成部署;涵盖一键构建、依赖管理核心功能,并提供交流支持。
249 0
Maven之初识与安装
|
2月前
|
人工智能 前端开发 关系型数据库
AI 都能直接写项目了,编程还值得学吗?聊聊我摸索出的通用突围路线
本文探讨AI时代编程学习的转型路径:强调先掌握变量、逻辑、循环、数组等底层编程思想,夯实语言基础;再分两阶段推进——前期手写为主筑牢根基,后期以AI为引擎实现全链路开发。核心是思维升级,而非语法堆砌。
404 2
|
3月前
|
人工智能 前端开发 Docker
Vibecoding 没钱上线?Cloudflare + Docker + ngrok 零成本全栈部署指南
本文介绍零成本部署全栈项目的实战方案:前端用Cloudflare Pages免费托管,后端本地Docker运行,通过ngrok内网穿透实现公网访问。全程无需服务器、不绑信用卡,规避ICP备案,适合学生和预算有限的开发者。
485 1
Vibecoding 没钱上线?Cloudflare + Docker + ngrok 零成本全栈部署指南
|
3月前
|
Java 数据库连接 数据库
MyBatis 之关联查询(一对一、一对多及多对多实现)
本文详解MyBatis关联查询:涵盖一对一(association)、一对多(collection)及多对多(本质为两个一对多)的映射配置与实战示例,含实体设计、XML映射、SQL编写及测试代码,助开发者高效处理表间关系。
228 0
MyBatis 之关联查询(一对一、一对多及多对多实现)

热门文章

最新文章