【算法笔记】B1027 打印沙漏
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
*****
***
*
***
*****
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:
输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。
输出格式:
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
输入样例:
19 *
输出样例:
*****
***
*
***
*****
2
CODE:
#include<iostream>
#include<math.h>
using namespace std; int main(){
int n,b,used;
char c;
cin>>n>>c;
b = (int)sqrt(*(n+)) - ;
if(b% == ) b--;
used = (b+)*(b+)/-;
for(int i=;i<b/;i++){
for(int j=;j<i;j++){
cout<<" ";
}
for(int j=i;j<b-i;j++){
cout<<c;
}
cout<<endl;
}
for(int i=;i<b/+;i++){
for(int j=;j<b/-i;j++){
cout<<" ";
}
for(int j=;j<i*+;j++){
cout<<c;
}
cout<<endl;
}
cout<<n-used<<endl;
return ;
}
【算法笔记】B1027 打印沙漏的更多相关文章
- PAT B1027 打印沙漏(20)
思路: 使用数组保存每一行沙漏的最大符号数 输入一个正整数和一个符号 遍历数组,找到大于正整数的数组下标 j. 三角形底边的字符数为 (j - 1) * 2 - 1 打印沙漏 打印剩余字符:x - n ...
- B1027 打印沙漏
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805294251491328 1027 打印沙漏 (20 分) ...
- PAT B1027 打印沙漏 (20 分)
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两 ...
- 【PAT】B1027 打印沙漏(20 分)
#include<cstdio> #include<stdlib.h> char C='*'; int qiushu(int hang){//输入行数,求出字符数 int su ...
- 算法笔记_223:打印回型嵌套(Java)
目录 1 问题描述 2 解决方案 1 问题描述 *********** * * * ******* * * * * * * * *** * * * * * * * * * * *** * * * ...
- PAT——乙级1036:跟奥巴马一起编程 &乙级1027:打印沙漏 (有坑)
乙级1036 1036 跟奥巴马一起编程 (15 point(s)) 美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统.2014 年底,为庆祝“计算 ...
- 算法笔记(c++)--01背包问题
算法笔记(c++)--经典01背包问题 算法解释起来太抽象了.也不是很好理解,最好的办法就是一步步写出来. 背包问题的核心在于m[i][j]=max(m[i-1][j],m[i-1][j-w[i]]+ ...
- 算法笔记(c++)--桶排序题目
算法笔记(c++)--桶排序 记得题目是排序,输入n个1-1000的数字然后去重然后排序. 桶排序没毛病 #include<iostream> using namespace std; i ...
- 《算法笔记》之基础C/C++入门
开始进行算法笔记的学习,在此纪录下来,同时作为自己日后复习资料. 1.基本语法 #include <iostream> using namespace std; int main(){ c ...
随机推荐
- box-shadow 内阴影
1.盒子阴影样式单词:box-shadow 2.语法 代表边框间距靠左0 靠上0 和1px阴影范围 阴影颜色为黑色(#000),有inset 代表框内阴影 ,不带inset 代表框外阴影. 注意:bo ...
- 公共技术点之 Java 反射 Reflection
本文摘录地址: http://codekk.com/open-source-project-analysis/detail/Android/Mr.Simple/%E5%85%AC%E5%85%B1%E ...
- c语言学习笔记 switch case语句为什么要加break
先来看一个没有break的例子: int main() { int a = 1; switch (a) { case 1: printf("1"); case 2: printf( ...
- LaTeX入门教程(一)
LaTeX(LATEX,音译“拉泰赫”)是一种基于ΤΕΧ的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在20世纪80年代初期开发,利用这种格式,即使使用者没有排版和程序设计 ...
- Part8-不用内存怎么行_2440内存初始化lesson2
1.2440地址空间 先去找PCB原理图,看CPU引出的内存地址线和数据线的宽度. 说明内存的其实地址是0x30000000为起始地址. 初始化内存其实是去初始化存储器控制器,只有初始化好这个存储器控 ...
- App性能测试工具使用说明-MobilePerformance
一. 环境搭建 安装Android SDK 1.6或者1.7版本均可,建议1.7,环境变量的配置,Java SDK的安装很简单,不赘述了. 安装SDK 1.安装Android SDK: 2.安装完毕后 ...
- MySQL事务隔离级别测试实例
https://www.cnblogs.com/huanongying/p/7021555.html MySQL事务隔离级别 事务隔离级别 脏读 不可重复读 幻读 读未提交(read-uncommit ...
- 三年经验的C,超过两题答不出请离开软件界
1.double free是什么问题?申请地址与释放地址不一致会有什么问题? 2.main函数最多有几个参数?各是什么作用? 3.crt是什么?编译器是怎么样连接crt的(描述cl或者gcc方式) 4 ...
- Java主线程如何等待子线程执行结束(转)
工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了. 一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线 ...
- Tomcat与Web.xml配置
1.编码配置 <Connector acceptCount=”100″ connectionTimeout=”20000″ disableUploadTimeout=”true” enableL ...