1027. 打印沙漏

摘要:
1027.打印沙漏的时间限制为200ms,内存限制为65536kB,代码长度限制为8000B,标准作者陈悦。这个问题要求您编写一个程序,将给定的符号打印成沙漏形状。例如,给定17“*”,要求以以下格式打印****************。所谓的“沙漏形状”意味着每一行输出奇数个符号;对齐每条线的符号中心;相邻两行之间的符号数差为2;符号的数量从大到小减少到1,然后从小到大增加;开始符号和结束符号的数量相等。给定任何N个符号,不一定能形成沙漏。输入示例:19*输出示例:*******************21#include 2#包含 3#包含 4#include56intmain()7{8intn,h,i,j;9charc;10scanf;11i=1;12而13{14i++;15}16h=i-1;17用于18{19用于20{21printf(“”);22}23用于24{25printf;26}27printf;28}29用于30{31用于32{33printf(“”);34}35用于36{37printf;38}39printf;40}41printf;4243返回0;44}
1027. 打印沙漏(20)
时间限制
200 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

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

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

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

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

输入格式:

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

输出格式:

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

输入样例:
19 *
输出样例:
*****
 ***
  *
 ***
*****
2
1 #include<stdio.h>
2 #include<math.h>
3 #include<stdlib.h>
4 #include<string.h>
5 
6 intmain()
7 {
8     intn, h, i, j;
9     charc;
10     scanf("%d %c", &n, &c);
11     i = 1;
12     while(2 * i * i - 1 <=n)
13 {
14         i++;
15 }
16     h = i - 1;
17     for(i = 0; i < h; i++)
18 {
19         for(j = 0; j < i; j++)
20 {
21             printf(" ");
22 }
23         for(; j < 2 * h - 1 - i; j++)
24 {
25             printf("%c", c);
26 }
27         printf("");
28 }
29     for(i = 1; i < h; i++)
30 {
31         for(j = 0; j < h  - 1 - i; j++)
32 {
33             printf(" ");
34 }
35         for(; j < h + i; j++)
36 {
37             printf("%c", c);
38 }
39         printf("");
40 }
41     printf("%d
", n - (2 * h * h - 1));
42 
43     return 0;
44 }

免责声明:文章转载自《1027. 打印沙漏》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux下pppoe设置TUXEDO管理命令总结下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux网络编程——进程池实现过程详解(2)

进程池功能升级: send_recv_syn同步机制 自定义设置函数recvCycle,确保双方收发机制正常 客户端中显示下载进度 time/slice两种方法 设置异常情况 客户端在下载中突然断开,原先的服务端会一直死循环打印 服务器突然断开,客户端全部死循环 服务器断开后,再次执行同一端口会出现异常 服务器要升级,通知客户端有序退出 如果业务...

MFC下CSocket编程详解

MFC下CSocket编程详解: 1. 常用的函数和注意事项(详细的函数接口说明请查看MSDN):     CSocket::Create 初始化(一般写服务器程序都不要用为好,用下面的 CSocket::Socket 初始化)    CSocket::Socket初始化     CSocket::SetSockOpt 设置socket选项     CS...

linux系统编程:自己动手写一个who命令

who命令的作用用于显示当前有哪些用户登录到系统。 这个命令执行的原理是读取了系统上utmp文件中记录的所有登录信息,直接显示出来的 utmp文件在哪里呢? man who的时候,在手册下面有这么一段说明:意思就是不指定文件参数,那么读取的就是/var/run/utmp,到底是不是,验证下 If FILE is not specified, use /va...

最高优先级

最高优先级 #include<stdio.h> #include<stdlib.h> #include<string.h> #define Max 100 typedef struct pcb {     char name[Max];  //进程名     int priority;    //优先级     int...

Linux内核结构体--kfifo 环状缓冲区

转载链接:http://blog.csdn.net/yusiguyuan/article/details/41985907 1、前言   最近项目中用到一个环形缓冲区(ring buffer),代码是由Linux内核的kfifo改过来的。缓冲区在文件系统中经常用到,通过缓冲区缓解cpu读写内存和读写磁盘的速度。例如一个进程A产生数据发给另外一个进程B,进程...

将文件映射到内存

mmap的好处: 和read、write系统调用相比不会产生无关的副本; 如果不出错就不会有系统调用、操作环境切换等开销; 不再需要lseek调用。 mmap的坏处: 内存映射总是PAGESIZE的整数倍,会浪费一定的内存; 如果要映射的内容非常大的时候可能找不到连续的线性地址空间; 创建并维护内核相关数据结构,这部分可能抵消双重副本节省下的开销...