[蓝桥杯2015初赛]打印大X

    科技2022-07-14  126

    题目描述

    小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。 为了便于比对空格,所有的空白位置都以句点符来代替。 要求输入两个整数m n,表示笔的宽度,X的高度。 输入 输入存在多组数据 每组测试数据输入一行,包含两个整数,用空格分开 (0<m<n, 3<n<1000, 保证n是奇数) 输出 要求输出一个大X

    样例输入

    3 9 4 21

    样例输出

    ***.....*** .***...***. ..***.***.. ...*****... ....***.... ...*****... ..***.***.. .***...***. ***.....*** ****................**** .****..............****. ..****............****.. ...****..........****... ....****........****.... .....****......****..... ......****....****...... .......****..****....... ........********........ .........******......... ..........****.......... .........******......... ........********........ .......****..****....... ......****....****...... .....****......****..... ....****........****.... ...****..........****... ..****............****.. .****..............****. ****................****

    代码如下:

    #include<iostream> #include<algorithm> #include<cstring> using namespace std; char a[1000][1000]; int main() { int w, h; while(cin >> w >> h){ int s = h-1+w; memset(a, 0 ,sizeof(a)); for(int i = 0; i < h; i ++){ for(int j = 0; j < s; j ++){ if(j < w) a[i][j+i] = '*'; if(j > (s-w)-1) a[i][j-i] = '*'; } } for(int i = 0; i < h; i ++){ for(int j = 0; j < s; j ++) if(a[i][j] != '*')cout << "."; else cout << a[i][j]; cout << endl; } } return 0; }
    Processed: 0.012, SQL: 8