【C语言】杨辉三角和练习

前言
🎈大家好,我是何小侠🎈
🍃大家可以叫我小何或者小侠🍃
💐希望能通过写博客加深自己对于学习内容的理解💐
🌸也能帮助更多人理解和学习🌸

君子慎独,不欺暗室。
解释:此两句为现代读者合用。君子在独处时,即使别人看不见、听不见,也要谨慎不苟

在这里插入图片描述


    这篇博客我们一起来学习杨辉三角的解题方法,然后再拿出两个相似思路的题目来练习

    在这里插入图片描述

    目录

    • 杨辉三角🍊
    • 练习:X形图案 🍊
    • 练习:空心三角形🍊
    • 总结🍊

    杨辉三角🍊

    在这里插入图片描述
    这道题其实只要点出思路就比较简单了。
    在这里插入图片描述
    我们将它看成是一个二维数组,那么打印1的位置只有列为0的时候 和 行和列相等的时候,也就是我们说的对角线。

    但是那其他数字该怎么打印呢? 我们可以知道一个规律,
    在这里插入图片描述
    数组上一行的两个数加起来等于下面一行的那个对应的数,但是是在第三行才有这个规律,那么现在就很简单了。

    int main() {int n = 0;scanf("%d",&n);int arr[30][30] ={0} ;int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j <= i; j++){if (i == j || j == 0){arr[i][j] = 1;}if ( i > 1 && j > 0 && j < i ){arr[i][j] = arr[i-1][j]+arr[i-1][j-1];}printf("%5d",arr[i][j]);}printf("\n");}return 0;
    }
    

    我们只需要打印一个在这里插入图片描述
    这样的三角形,所以第二层for循环里的 j < i 就行。还要注意的一点是题目中提到的的域宽,要以%5d的形式输出。

    练习:X形图案 🍊

    在这里插入图片描述
    在这里插入图片描述
    我们依然讲的清晰一些
    在这里插入图片描述
    还是一样的规律其实, i==j 的时候,打印星星,i+j == 最大行数时,打印星星。

    int main() {int x = 0;int i = 0;int j = 0; while(~scanf("%d",&x)){for (i = 0; i < x; i++){for(j = 0; j < x; j++){if (i == j || i+j == x-1){printf("*");}else {printf(" ");}}printf("\n");}}return 0;
    }
    

    练习:空心三角形🍊

    在这里插入图片描述
    其实也很简单
    在这里插入图片描述
    我们看到

    if (i == j || j == 0){arr[i][j] = 1;}
    

    杨辉三角中我们是这样打印1的也就是说和这里打印星星是一样的,
    但是这样还少了最后一行的星星,我们也只需要多加一个条件就行了

    int main() {int  n = 0;char arr[20][20] = { 0 };int i = 0;int j = 0;while (scanf("%d", &n) == 1) { for (i = 0; i < n; i++){for (j = 0; j <= i; j++){if (j == 0 || i == j || i == n - 1){arr[i][j] = '*';}else {arr[i][j] = ' ';}printf("%c ", arr[i][j]);}printf("\n");}}return 0;
    }
    

    总结🍊

    这篇博客写的东西并不是太难,主要是想总结一下这一类的题目,还有其实上面的代码都可以不用数组直接打印,但是我觉得用数组可以更好的理解,完~

    最后如果这篇博客有帮助到你,欢迎点赞关注加收藏

    在这里插入图片描述在这里插入图片描述
    如果本文有任何错误或者有疑点欢迎在评论区评论
    在这里插入图片描述

    在这里插入图片描述

    本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/5566.html

    如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

    相关文章

    从四个角度全面认识 ChatGPT

    传统语言模型是什么样的&#xff1f;ChatGPT 涌现出了哪些新能力&#xff1f;这些能力都是怎么做到的&#xff1f;在 ChatGPT 大模型时代&#xff0c;我们应该怎么做&#xff1f; 当下最引人注目的语言模型 ChatGPT 如火如荼&#xff0c;主要还是因为其能力远远超越了传统模型。…

    Linux5.9 MySQLMHA高可用配置及故障切换

    文章目录 计算机系统5G云计算第四章 LINUX MySQL MHA高可用配置及故障切换一、概述及原理1.什么是 MHA2.MHA 的组成&#xff08;工作原理&#xff09;3.MHA 的特点 二、MMM&#xff08;Master-Master replication manager for MvSQL&#xff0c;MySQL主主复制管理器&#xff09…

    Win 10 重装系统(PE方式)

    前言&#xff1a; 最近这个笔记本&#xff08;ThinkPad E480&#xff0c;使用了四年左右&#xff09;用起来很卡&#xff0c;经常开机状态时&#xff0c;合上之后&#xff0c;再打开屏幕就卡死了&#xff0c;鼠标和键盘按了都没有反应&#xff0c;无奈之下只能强制按电源关机后…

    大数据Doris(四十八):Steam Load案例和注意事项

    文章目录 Steam Load案例和注意事项 一、Steam Load案例 1、准备数据 2、创建 Doris 表 3、创建 Stream Load 导入任务 4、查看任务 5、查询Doris 表结果 二、注意事项 Steam Load案例和注意事项 一、Steam Load案例 下面以导入Linux节点本地磁盘数据到Doris为例&…

    爆肝整理,性能测试-测试工具选型(各个对比)卷起来...

    目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 性能测试和功能测…

    SciencePub学术 | 算法类重点SCIEEI征稿中

    SciencePub学术 刊源推荐: 算法类重点SCI&EI征稿中&#xff01;2区闭源好刊&#xff0c;对国人非常友好。信息如下&#xff0c;录满为止&#xff1a; 一、期刊概况&#xff1a; 算法类重点SCI&EI 【期刊简介】IF&#xff1a;6.0-6.5&#xff0c;JCR2区&#xff0c;中…

    gcc编译过程详解

    以一个简单的C代码为例&#xff0c;详细讲解gcc整个编译过程。 1、预处理 主要处理#开头的东西&#xff0c;例如头文件处理、条件编译处理、将宏定义进行替换&#xff0c;还可以去掉注释、添加行号等。预处理的命令如下&#xff1a; gcc -E hello.c -o hello.i #-E表示预处理…

    Jenkins 持续集成:Linux 系统 两台机器互相免密登录

    背景知识 我们把public key放在远程系统合适的位置&#xff0c;然后从本地开始进行ssh连接。 此时&#xff0c;远程的sshd会产生一个随机数并用我们产生的public key进行加密后发给本地&#xff0c;本地会用private key进行解密并把这个随机数发回给远程系统。 最后&#xf…

    MeterSphere(基于JMeter)常用断言汇总

    JSONPath方式断言 {"success": true,"errCode": null,"errMessage": null,"statDate":"6月28日","data": [{"name": "人口","value": "1","unit": "万人…

    安装 Prometheus 指标存储 观测 dubbo /windows_exporter指标 windows 版本 其他系统换个语法思路一样

    目录 下载 Prometheus 访问Prometheus Targets 发现服务 对应的 dubbo 指标就出来了 Dubbo脚手架生成个最简单的项目 导入 Prometheus 相关包 或者使用这个包即可 启动后就自动上报指标了 Windows_exporter or node_exporter 端口 9182 Prometheus 配置 windows_exp…

    『手撕 Mybatis 源码』11 - 二级缓存

    二级缓存 概述 启用二级缓存需要进行三步配置 开启映射器配置文件中的缓存配置 <settings><!--cacheEnabled值默认就为true--><setting name"cacheEnabled" value"true"/></settings>在需要使用二级缓存的 Mapper 配置文件中配…

    【嵌入式Qt开发入门】在Ubuntu下编写C++

    在 Ubuntu 上面编写 C&#xff0c;本文内容主要介绍在 Ubuntu 在终端窗口下使用 vi/vim 编辑一 个 C源文件。通过编写最简单的示例“Hello,World&#xff01;”。带领大家学习如何在 Ubuntu 终端下编辑和编译 C。这里要求大家会在 Ubuntu 上使用 vi/vim&#xff0c;也就是要求大…