当前位置: 首页 > news >正文

倒三角形的两种输出方法

【题目描述】

输入正整数n≤20,输出一个n层的倒三角形。例如,n=5时输出如下:

#########

  #######

   #####

    ###

     #

【题目来源】

刘汝佳《算法竞赛入门经典  第2版》习题2-3 倒三角形(triangle)

【解析】

输出的三角形本质上是一个等差数列,关键是找到最后一个数与n的关系。首项为1,公差为2,显然第n项等于2n-1。只不过,这个等差数列要倒序输出。

解法一:累加器+公式法

从输出的图形可以看出,每行输出的空格数是递增1的,由此可以利用累加器cnt++输出空格;“#”的输出数量则利用等差数列求第n项的公式求出。

#include<stdio.h>
int main(){int n, cnt=0;scanf("%d", &n);while(n){for(int i=1; i<=cnt; i++) printf(" ");for(int j=1; j<=2*n-1; j++) printf("#");printf("\n");n--;cnt++;}return 0;
}

解法二:等差法

思路是先求最大项,即第一行要输出的“#”数量(也就是等并数列的最后1项2n-1),以它为基准,其后每一项输出“#”的数量比前一项减2,输出的空格是(最大#数量-当前行#数量)/2。

#include<stdio.h>
int main(){int n;scanf("%d", &n);for(int i=2*n-1; i>0; i-=2){for(int k=1; k<=(2*n-1-i)/2; k++) printf(" ");for(int j=1; j<=i; j++) printf("#");printf("\n");}return 0;
}

相关文章:

  • MES实施之工控机和电脑的选择
  • 条件变量的使用(golang)
  • 计算机网络-TCP重传、滑动窗口、流量控制、拥塞控制
  • 解决element-plus table组件 fixed=“right“(left)浮动后横向滚动文字穿透的问题
  • 【北邮国院大三下】Cybersecurity Law 网络安全法 Week1【更新Topic4, 5】_cyber security la
  • 12.自定义的多帧缓存架构
  • 【PostgreSQL】技术传承:使用Docker快速部署PostgreSQL数据库
  • 游戏引擎中的物理系统
  • 深入探讨string类的奥秘
  • 数据库的简单查询
  • 深入浅出 -- 系统架构之分布式多形态的存储型集群
  • 使用阿里云试用Elasticsearch学习:3.1 处理人类语言——开始处理各种语言
  • 如何进行Python程序的性能优化?
  • 云计算的安全需求
  • 网易雷火 暑期实习提前批一面(48min)
  • (三)从jvm层面了解线程的启动和停止
  • git 常用命令
  • Joomla 2.x, 3.x useful code cheatsheet
  • js ES6 求数组的交集,并集,还有差集
  • MySQL用户中的%到底包不包括localhost?
  • React-生命周期杂记
  • 阿里云Kubernetes容器服务上体验Knative
  • 编写高质量JavaScript代码之并发
  • 搭建gitbook 和 访问权限认证
  • 因为阿里,他们成了“杭漂”
  • 用 Swift 编写面向协议的视图
  • 【云吞铺子】性能抖动剖析(二)
  • postgresql行列转换函数
  • 关于Android全面屏虚拟导航栏的适配总结
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (Java数据结构)ArrayList
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一) storm的集群安装与配置
  • (一)为什么要选择C++
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .[hudsonL@cock.li].mkp勒索病毒数据怎么处理|数据解密恢复
  • .bat批处理(一):@echo off
  • .net core 连接数据库,通过数据库生成Modell
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET 表达式计算:Expression Evaluator
  • .NET 指南:抽象化实现的基类
  • .sdf和.msp文件读取
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • [\u4e00-\u9fa5] //匹配中文字符
  • [APIO2015]巴厘岛的雕塑
  • [BT]BUUCTF刷题第4天(3.22)
  • [BT]小迪安全2023学习笔记(第15天:PHP开发-登录验证)
  • [BUAA软工]第一次博客作业---阅读《构建之法》
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [bzoj2957]楼房重建