L1-2. 打印沙漏

网友投稿 794 2022-08-23

L1-2. 打印沙漏

L1-2. 打印沙漏

L1-2. 打印沙漏

时间限制

400 ms

内存限制

65536 kB

代码长度限制

8000 B

判题程序

Standard

作者

陈越

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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

19 *

输出样例:

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

题解:找规律,然后循坏嵌套输出。

----------------------------------------------------------------------------------------------------------------------------------

AC代码:

#include#include#includeusing namespace std;int main(){ int N; char c; cin >> N >> c; int k = sqrt((N + 1) / 2); for (int i = 1; i <= k; i++) { for (int j = 1; j < i; j++) { cout << " "; } for (int j = 2*(k - i) + 1; j >= 1; j--) { cout << c; } cout << endl; } for (int i = 1; i <= k - 1; i++) { for (int j = 1; j <= k - i - 1; j++) { cout << " "; } for (int j = 1; j <= 2 * i + 1; j++) { cout << c; } cout << endl; } cout << N + 1 - 2 * k*k << endl; return 0;}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:我们究竟什么时候可以使用Ehcache缓存(ehcache和本地缓存的区别)
下一篇:HDU 1061 Rightmost Digit(快速幂取模)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~