第六届蓝桥杯C++ C组(省赛)打印大X

Description
小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。

为了便于比对空格,所有的空白位置都以句点符来代替。

要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)

要求输出一个大X

Input
要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)

Output
要求输出一个大X

Sample Input
3 9
Sample Output

***.....***
.***...***.
..***.***..
...*****...
....***....
...*****...
..***.***..
.***...***.
***.....***
#include<bits/stdc++.h>
using namespace std;
char a[10001][10001];
int main()
{
    int i,j,n,m,k,zczf,ii,jj;
    cin>>n>>m;
    k=(n+m)-1;
    zczf=k-n-n;
    ii=jj=0;
    for(i=1;i<=(m+1)/2;i++)
    {
        ii++;
        jj=0;
        for(j=1;j<=i-1;j++)
        {
            jj++;
            cout<<'.';
            a[ii][jj]='.';
        }
        if(k-(i-1)-(i-1)<=n*2)
        {
            for(j=1;j<=k-(i-1)-(i-1);j++)
            {
                jj++;
                cout<<'*';
                a[ii][jj]='*';
            }
        }
        else
        {
            for(j=1;j<=n;j++)
            {
                jj++;
                cout<<'*';
                a[ii][jj]='*';
            }
            for(j=1;j<=zczf;j++)
            {
                jj++;
                cout<<'.';
                a[ii][jj]='.';
            }
            zczf-=2;
            for(j=1;j<=n;j++)
            {
                jj++;
                cout<<'*';
                a[ii][jj]='*';
            }
        }
        for(j=1;j<=i-1;j++)
        {
            jj++;
            cout<<'.';
            a[ii][jj]='.';
        }
        cout<<endl;
    }
    for(i=ii-1;i>=1;i--)
    {
        for(j=1;j<=jj;j++)
        {
            cout<<a[i][j];
        }
        cout<<endl;
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值