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

C++程序设计:输出n层金字塔图形

【问题描述】

输入金字塔的层数n(n为正整数),输出由字符*组成的金字塔图形。最底层的字符数为2n-1,最上层字符数为1。字符图形水平居中对齐(使用空格填充)。

 

【样例输入】

5

 

【样例输出】

    *
   ***
  *****
 *******
*********

 

【分析】

输出金字塔图形的关键就是确定每一行空格数、星号数与金字塔层数、所在行数的关系。

每一行应该输出多少星号很容易确定,第i行输出2i-1个星号就可以了。

那么在每一行的星号之前,输出需要多少空格呢?这就与金字塔的层数n有关了。

 

我个人认为这样计算空格数最为简单:

首先计算第一行的空格数x。第一行有一个星号,这个星号左边有x个空格,右边也有x个空格的位置。

也就是说,第一行有2x+1个字符。

最后一行的空格数为0,只有2n-1个星号,n为金字塔的层数。

也就是说,最后一行有2n-1个字符。

怎样保证金字塔的对称性?对了,就是每一行的字符数都相同,所以:2x+1=2n-1,x是多少不用再解释了吧!

我们不需要求每一行的空格数,每一行都比上一行少输出一个空格就可以了。

 

#include <iostream>
#include <iomanip>
using namespace std;
int main(){
	int n;
	cin>>n;
	int i,count,m,konggeshu;
	konggeshu=(2*n-2)/2;
	for(i=1;i<=n;i++){
		count=2*i-1;
		for(m=1;m<=konggeshu;m++)
			cout<<" ";
		for(m=1;m<=count;m++)
			cout<<"*";
		konggeshu--;
		cout<<endl;
	}
	return 0;
}

 

相关文章:

  • 初入灵狐
  • 文轩大师的人体习作
  • C++程序设计:补齐函数求∏的值
  • Windows Server 2003 添加/删除Windows组件出现错误的问题
  • C++程序设计:俄罗斯方块(模拟方块下落,经典问题)
  • Eclipse快速上手指南 (4)
  • 经典非对称加密算法:RSA算法原理、实现详解(C++、Java)
  • VGA显示卡图形模式访问(提示版) (2)
  • 【亲测有效】IDEA连接MySQL数据库时“Server returns invalid timezone”时区问题的解决方法
  • 使用dbms_rectifier_diff解决高级复制中的数据冲突问题
  • 非常好用的在线画树网站(树结构的自动生成工具,免去手动画树的烦恼)
  • Dev-Cpp/Mingw32 环境介绍(6)
  • 【解决方案】使用Wireshark工具抓取TCP数据包时为什么遇到了52.114.77.164与168.63.202.111?
  • t.k.x's ACM(2)---不敢报希望的准备
  • C++面向对象程序设计:银行储蓄管理系统
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • CSS3 变换
  • JavaScript 一些 DOM 的知识点
  • Mysql5.6主从复制
  • Next.js之基础概念(二)
  • redis学习笔记(三):列表、集合、有序集合
  • SpringBoot几种定时任务的实现方式
  • underscore源码剖析之整体架构
  • vuex 学习笔记 01
  • 百度贴吧爬虫node+vue baidu_tieba_crawler
  • 前端每日实战:70# 视频演示如何用纯 CSS 创作一只徘徊的果冻怪兽
  • 软件开发学习的5大技巧,你知道吗?
  • 算法---两个栈实现一个队列
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • scrapy中间件源码分析及常用中间件大全
  • #pragma 指令
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (算法设计与分析)第一章算法概述-习题
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转)LINQ之路
  • (转载)Linux 多线程条件变量同步
  • (轉)JSON.stringify 语法实例讲解
  • .bat批处理(一):@echo off
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET 中创建支持集合初始化器的类型
  • .net网站发布-允许更新此预编译站点
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • [ vulhub漏洞复现篇 ] Grafana任意文件读取漏洞CVE-2021-43798
  • [2016.7.test1] T2 偷天换日 [codevs 1163 访问艺术馆(类似)]
  • [bzoj2957]楼房重建
  • [C#]科学计数法(scientific notation)显示为正常数字
  • [C++进阶篇]STL中vector的使用
  • [codevs 1288] 埃及分数 [IDdfs 迭代加深搜索 ]
  • [CTF]2022美团CTF WEB WP
  • [C语言]编译和链接
  • [gdc19]《战神4》中的全局光照技术
  • [GPT]Andrej Karpathy微软Build大会GPT演讲(上)--GPT如何训练
  • [IE技巧] 如何让IE 启动的时候不加载任何插件