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

pta L1-002 打印沙漏

L1-002 打印沙漏

分数 20

全屏浏览

切换布局

作者 陈越

单位 浙江大学

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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

19 *

输出样例:

************
*****
2

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

代码:

#include<iostream>
using namespace std;
int main() {int n,s = 0,num = 1,c = -1, sum = 0 ,sub;char shape;cin >> n >> shape;if (n < 7)cout << shape << endl << n-1 << endl;else{for (int i = 1; i <= 500; i++) {s+=num * 2;num += 2;c++;if (s >= n) break;}int every;for (int i = c; i > 0; i--) {every = i * 2;for (int j = c - i; j > 0; j--)cout << " ";for (int j = 1; j < every; j++) {cout << shape;if (j == every - 1)cout << endl;}}for (int i = 2; i <= c; i++) {every = i * 2;for (int j = c - i; j > 0; j--)cout << " ";for (int j = 1; j < every; j++) {cout << shape;if (j == every - 1)cout << endl;}}for (int i = 1; i <= c; i++) {sum = i * 4 - 2 + sum;}sub = n - sum + 1;cout << sub << endl;}return 0;
}

http://www.lryc.cn/news/334456.html

相关文章:

  • 【简单讲解下PHP AES加解密示例】
  • 设计模式总结-外观模式(门面模式)
  • LiveGBS流媒体平台GB/T28181常见问题-系统服务日志如何配置日志个数日志路径日志时长web操作日志操如何配置保留天数及过滤
  • es6:set()和weakset()
  • C#仿OutLook的特色窗体设计
  • Jmeter的使用
  • 【蓝桥杯第十届省赛B】(部分详解)
  • 计算机研究生规划
  • 针孔相机、鱼眼相机、全景相机
  • HTML5+CSS3+JS小实例:圣诞按钮
  • 【深度学习基础】
  • 银行业架构网络BIAN (Banking IndustryArchitecture Network)详细介绍
  • [尚硅谷 flink] 基于时间的合流——双流联结(Join)
  • 怎样恢复已删除的照片?教你3个方法,一键恢复!
  • 植物糖基转移酶数据库-23年-地表最强系列-文献精读-6
  • 虚拟机打不开
  • MySQL数据库版本为5.5.62,时间戳超出2038年1月19日的解决方案
  • C++20 semaphore(信号量) 详解
  • 【简单讲解下Lisp的学习历程】
  • 构建高效网络:深入理解正向与反向代理的作用与配置
  • Linux:make/makefile的使用
  • Java设计模式—策略模式(商场打折)
  • FOR循环
  • C++: 命名空间/C++输入输出/缺省参数/函数重载/引用/内联函数
  • Java | Leetcode Java题解之第13题罗马数字转整数
  • 题目:学习使用register定义变量的方法。
  • IO_DAY7
  • 大模型学习笔记八:手撕AutoGPT
  • Java常用API_System——常用方法及代码演示
  • neo4j图数据库下载安装配置