计蒜客显示屏输出;

(复制出错,格式有问题。不要描述部分了,看输入样例就能理解题意)

输入格式

输入两个整数 k,n(1≤k≤10,0≤n≤99999999),分别表达放大的倍数和需要输出的数字。

输出格式
输出数码管显示的数字,数字每一位之间用一列空格隔开。

样例输入1
2 12345
样例输出1
– – –
| | | | | |
| | | | | |
– – – –
| | | | |
| | | | |
– – –
样例输入2
3 67890
样例输出2


| | | | | | | |
| | | | | | | |
| | | | | | | |


| | | | | | | |
| | | | | | | |
| | | | | | | |


#include<bits/stdc++.h>
using namespace std;
char num[10][5][2]=
{
    {{'-',' '},{'|','|'},{' ',' '},{'|','|'},{'-',' '}},//数字0的第一行,第二行,第三行……
    {{' ',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},//数字1的第一行,第二行,第三行……
    {{'-',' '},{' ','|'},{'-',' '},{'|',' '},{'-',' '}},//2
    {{'-',' '},{' ','|'},{'-',' '},{' ','|'},{'-',' '}},//3
    {{' ',' '},{'|','|'},{'-',' '},{' ','|'},{' ',' '}},//4
    {{'-',' '},{'|',' '},{'-',' '},{' ','|'},{'-',' '}},//5
    {{'-',' '},{'|',' '},{'-',' '},{'|','|'},{'-',' '}},//6
    {{'-',' '},{' ','|'},{' ',' '},{' ','|'},{' ',' '}},//7
    {{'-',' '},{'|','|'},{'-',' '},{'|','|'},{'-',' '}},//8
    {{'-',' '},{'|','|'},{'-',' '},{' ','|'},{'-',' '}}//9
};
void out(int k,char t)
{
    for(int i=0;i<k;i++)
        cout<<t;
}//实现重复输入;
int main()
{
    int s,times,m,i=0,a[10]={0},r=0;
    cin>>times>>m;
    if(m==0)
    {
        a[0]=0;
        i=1;
    }//小心bug,当m=0;
    while(m>0){
        s=m%10;
        m=m/10;
        a[i]=s;
        i++;
    }
    i--;
    for(int j=0;j<=i/2;j++)
        swap(a[j],a[i-j]);//交换位置;
    for(int j=0;j<5;j++)
    {
        if(j%2==1)
            r=times;
        else
            r=1;//次数;
        for(int p=0;p<r;p++)
        {
            for(int k=0;k<i+1;k++)
            {
                if(j%2==0)
                {
                    cout<<' ';
                    out(times,num[a[k]][j][0]);
                    cout<<' ';
                    if(k!=i)
                        cout<<' ';//去你的格式错误;
                    continue;
                }
                else
                {
                    cout<<num[a[k]][j][0];
                    out(times,' ');
                    cout<<num[a[k]][j][1];
                    if(k!=i)
                        cout<<' ';
                }
            }
            cout<<endl;
        }
    }
    return 0;
}

本题看着脑壳痛,确实很恶心,光是那个num数组就打了好久;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值