打印大叉 蓝桥杯
2017-03-30 12:08
141 查看
打印大X 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。 为了便于比对空格,所有的空白位置都以句点符来代替。 要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数) 要求输出一个大X 例如,用户输入: 3 9 程序应该输出: ***.....*** .***...***. ..***.***.. ...*****... ....***.... ...*****... ..***.***.. .***...***. ***.....*** (如有对齐问题,参看【图1.jpg】) 再例如,用户输入: 4 21 程序应该输出 ****................**** .****..............****. ..****............****.. ...****..........****... ....****........****.... .....****......****..... ......****....****...... .......****..****....... ........********........ .........******......... ..........****.......... .........******......... ........********........ .......****..****....... ......****....****...... .....****......****..... ....****........****.... ...****..........****... ..****............****.. .****..............****. ****................****
其实就是熟悉数学算法
#include <iostream> using namespace std; int main() { int m,n; cin>>m>>n; for(int i=0;i<n;i++) { int a=(-1*abs(i-(n-1)/2))+(n-1)/2; int b=n-m-1-2*a; if(2*a+2*m>m+n-1)//输出中间一行有三部分的那一部分 { for(int j=0;j<a;j++) cout<<"."; for(j=0;j<m+n-1-2*a;j++) cout<<"*"; for(j=0;j<a;j++) cout<<"."; } else//输出一行有五部分的那一部分 { for(int j=0;j<a;j++) cout<<"."; for(j=0;j<m;j++) cout<<"*"; for(j=0;j<b;j++) cout<<"."; for(j=0;j<m;j++) cout<<"*"; for(j=0;j<a;j++) cout<<"."; } cout<<endl; } return 0; }
相关文章推荐
- 蓝桥杯之 历届试题 打印十字图
- 蓝桥杯历届试题-打印十字图
- 蓝桥杯 打印回型嵌套
- 第五届蓝桥杯初赛-打印图形
- 蓝桥杯历届-打印十字图
- 蓝桥杯 历届试题 打印十字图(打印)
- 蓝桥杯 打印十字图
- 蓝桥杯 打印十字图
- 山东省第五届蓝桥杯 ///标题:打印图形//c/c++组
- 蓝桥杯-打印十字图
- 蓝桥杯 打印十字图
- 蓝桥杯—打印图形
- 【第七届蓝桥杯】打印方格
- 蓝桥杯 打印图形(分型法)
- JAVA 蓝桥杯 图案打印
- 2014 蓝桥杯 预赛 c/c++ 本科B组 第五题:打印图形 (12' )
- 2015第六届蓝桥杯 09 打印大X(java)
- 蓝桥杯 历届考题 打印十字图 java编写
- 打印十字图-蓝桥杯历届试题
- 蓝桥杯 ALGO-145 算法训练 4-1打印下述图形