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

L1-002 打印沙漏

L1-002 打印沙漏 - 团体程序设计天梯赛-练习集 (pintia.cn)

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

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

所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:

输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:

19 *

输出样例:

************
*****
2
题解
  1. 计算沙漏层数:

    • 初始化沙漏的层数 level 为 1,已使用的符号总数 total 为 1(因为最顶层只有一个符号)。

    • 通过循环不断尝试增加层数,每次增加层数时计算增加这一层所需的符号数(每一层比上一层多 2 个符号,且沙漏上下对称,所以每次增加的符号数为 2 * (2 * (level + 1) - 1))。只要增加这一层后使用的符号总数不超过给定的 n,就继续增加层数,并更新 totallevel

  2. 打印沙漏上半部分:

    • 使用外层循环从 level 递减到 1,控制当前要打印的层数。

    • 对于每一层,先打印一定数量的空格,空格数为 level - i,以实现符号的中心对齐。

    • 接着打印当前层的符号,符号数为 2 * i - 1

    • 每打印完一层,换行。

  3. 打印沙漏下半部分:

    • 使用外层循环从 2 递增到 level,控制当前要打印的层数。

    • 同样,先打印一定数量的空格,空格数为 level - i

    • 然后打印当前层的符号,符号数为 2 * i - 1

    • 每打印完一层,换行。

  4. 输出剩余符号数:

    • 计算剩余未使用的符号数,即 n - total,并将其输出。

代码
#include<bits/stdc++.h>
using namespace std;
int main(){int n;char ch;cin>>n>>ch;int total=1;int level=1;while(total+2*(2*(level+1)-1)<=n){total+=2*(2*(level+1)-1);level++;}for(int i=level;i>=1;i--){for(int j=0;j<level-i;j++) cout<<" ";for(int j=0;j<2*i-1;j++) cout<<ch;cout<<endl;}for(int i=2;i<=level;i++){for(int j=0;j<level-i;j++) cout<<" ";for(int j=0;j<2*i-1;j++) cout<<ch;cout<<endl;}cout<<n-total<<endl;return 0;
}

相关文章:

  • libwebsocket建立服务器需要编写LWS_CALLBACK_ADD_HEADERS事件处理
  • [区块链lab2] 构建具备加密功能的Web服务端
  • 基于javaEE+jqueryEasyUi+eclipseLink+MySQL的课程设计客房管理信息系统
  • 【系统搭建】Ubuntu系统两节点间SSH免密配置
  • KALI搭建log4j2靶场及漏洞复现全流程
  • Uniapp:列表选择提示框
  • JSP技术入门指南【一】利用IDEA从零开始搭建你的第一个JSP系统
  • Docker Compose 命令实现动态构建和部署
  • 2025年推荐使用的开源大语言模型top20:核心特性、选择指标和开源优势
  • 全链路开源数据平台技术选型指南:六大实战工具链解析
  • 纷析云开源财务软件:企业财务数字化转型的灵活解决方案
  • lombok requires enabled annotation processing
  • 三层路由器,SSH远程登录访问路由器,通过telnet远程登录访问路由器(不安全),路由器的基本设置之多网络互联解决办法:单臂路由
  • Web3技术如何提升用户数据保护
  • 05-DevOps-Jenkins自动拉取构建代码
  • 【路由交换方向IE认证】BGP选路原则之Local Preference属性
  • 计算机网络 实验四 静态路由的配置与应用
  • 自动化浏览器环境与 Node.js 环境的逆向分析:完整教程
  • 【开发语言】悬空指针问题
  • 《分布式软总线架构下,设备虚拟化技术的深度剖析与优化策略》
  • 西昌市网站建设公司/一媒体app软件下载老版本
  • 潜江做网站/免费seo网站诊断
  • 做效果图的网站有哪些软件/百度自动点击器怎么用
  • 网站图片优化的概念/google关键词规划师
  • jsp编写网站/南京百度关键字优化价格
  • 深圳金融投资网站建设/seo建站公司