打印沙漏
来源:互联网 发布:et200proprofinet网络 编辑:程序博客网 时间:2024/04/27 22:35
自测-1 打印沙漏 (20分)
本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印
*
所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。
给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。
输入格式:
输入在一行给出1个正整数N(≤\le≤1000)和一个符号,中间以空格分隔。
输出格式:
首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
输入样例:
19 *
输出样例:
*
2
解题思路:用等差求和,沙漏的总字符数正好是2S-1
#include<iostream>#include<cmath>using namespace std;int main(){ int n; char c; cin>>n>>c; int x = sqrt((n+1)/2.0); for(int i=1;i!=x+1;i++){ for(int j=1;j !=i;j++) cout <<' '; for(int j=2*x-1;j>=2*i-1;j--) cout<<c; cout <<"\n"; } for(int i=x-1;i!=0;i--){ for(int j=1;j !=i;j++) cout <<' '; for(int j=2*x-1;j>=2*i-1;j--) cout<<c; cout <<"\n"; }cout<<n-(x*x*2-1)<<endl;return 0;}
PS:很久没发博客了,刷水题水水( ̄o ̄) . z Z
1 0
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏
- 打印沙漏形
- pat_b_1027 打印沙漏
- 1027 打印沙漏
- 编码规范
- Android Tombstone/Crash的log分析和定位
- 深入理解javascript原型和闭包(15)——闭包
- Mysql 查看连接数,状态
- easyui中datagrid分页问题
- 打印沙漏
- java将字符串写入到文件中
- Mybatis接口编程方式实现增删改查
- python删除pandas DataFrame的某一/几列
- 谈谈集成显卡双2K/4K输出的那点事情
- 设计模式----面向对象的六大原则
- 仿支付宝咻一咻效果
- 常见证书格式转换
- 文本编辑器