暑期个人赛--第三场--A

A. 学姐的数码管 2014新生暑假个人排位赛03
时间限制 1000 ms 内存限制 65536 KB
题目描述
学姐的七段数码管玩的出神入化。 现在给你一个浮点数,你需要把它以七段数码管的形式输出出来。 一个(2∗n+1)∗n的矩阵来表示七段数码管,若下标均从0开始,则以第0列的两个,第n−1列的两个,第0行的一个,第n行的一个,第2∗n行的一个表示七个段。小数点所占矩形为(2∗n+1)∗1,点在中间最下面一列。每一个数字或小数点矩阵用一列空格隔开。 数码管亮的部分用#覆盖,其余部分用空格补全,若一个数字或小数点的行末尾无#,也要用空格字符补全为(2∗n+1)∗n 细节参见样例。


输入格式
输入有多组数据,数据不超过100组,每组数据给一个整数n(3≤n≤10),和一个浮点数,输入保证每一个浮点数的总长度为4位且没有前导0。


输出格式
输出他的数码管显示。每组数据末尾输出一个空行。


输出样例

### ### ### ###
  #   #   # # #
  #   #   # # #
### ### ### # #
#     #   # # #
#     #   # # #
### ### ### ###

  # # # ### ###
  # # # #   #  
  # # # #   #  
  # ### ### ###
  #   #   # # #
  #   #   # # #
  #   # ### ###

#### ####   ####
   # #  #   #  #
   # #  #   #  #
   # #  #   #  #
   # ####   ####
   # #  #      #
   # #  #      #
   # #  #      #
   # #### # ####


赛中提交:WA WA WA

赛后ac:Y


赛时WA原因:

没看懂题目啊TT~!!!

“每组数据末尾输出一个空行。”

是空行啊 啊啊啊啊啊啊啊混蛋~!!!


#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string>
#include <vector>
#include <list>
#include <map>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <numeric>
#include <functional>
#define maxn 500005

using namespace std;
char bitc[15];
int bit[15];

int tube(int n)
{
    int bits=3;

    for(int i=bits;i>=0;i-=1){ //第零行~!!!!!
        if(bit[i]==1){
            for(int j=0;j<n-1;j+=1){
                printf(" ");
            }
            printf("#");
        }
        else if(bit[i]==4){
            printf("#");
            for(int j=0;j<n-2;j+=1){
                printf(" ");
            }
            printf("#");
        }
        else if(bit[i]==99){
            printf(" ");
        }
        else{
            for(int j=0;j<n;j+=1){
                printf("#");
            }
        }

        if(i!=0){
            printf(" ");
        }
    }
    printf("\n");

    for(int k=1;k<=n-1;k+=1){
    for(int i=bits;i>=0;i-=1){  //第一行至第n-1行!!!!
        if(bit[i]==5||bit[i]==6){
            printf("#");
            for(int j=0;j<n-1;j+=1){
                printf(" ");
            }
        }
        else if(bit[i]==99){
            printf(" ");
        }
        else if(bit[i]==0||bit[i]==4||bit[i]==8||bit[i]==9){
            printf("#");
            for(int j=0;j<n-2;j+=1){
                printf(" ");
            }
            printf("#");
        }
        else{
            for(int j=0;j<n-1;j+=1){
                printf(" ");
            }
            printf("#");
        }

        if(i!=0){
            printf(" ");
        }
    }
    printf("\n");
    }

    for(int i=bits;i>=0;i-=1){ //第n行~!!!!!
        if(bit[i]==1||bit[i]==7){
            for(int j=0;j<n-1;j+=1){
                printf(" ");
            }
            printf("#");
        }
        else if(bit[i]==99){
            printf(" ");
        }
        else if(bit[i]==0){
            printf("#");
            for(int j=0;j<n-2;j+=1){
                printf(" ");
            }
            printf("#");
        }
        else{
            for(int j=0;j<n;j+=1){
                printf("#");
            }
        }

        if(i!=0){
            printf(" ");
        }
    }
    printf("\n");

    for(int k=1;k<=n-1;k+=1){
    for(int i=bits;i>=0;i-=1){  //第n+1行至第2n-1行!!!!
        if(bit[i]==8||bit[i]==6||bit[i]==0){
            printf("#");
            for(int j=0;j<n-2;j+=1){
                printf(" ");
            }
            printf("#");
        }
        else if(bit[i]==2){
            printf("#");
            for(int j=0;j<n-1;j+=1){
                printf(" ");
            }
        }
        else if(bit[i]==99){
            printf(" ");
        }
        else{
            for(int j=0;j<n-1;j+=1){
                printf(" ");
            }
            printf("#");
        }

        if(i!=0){
            printf(" ");
        }
    }
    printf("\n");
    }

    for(int i=bits;i>=0;i-=1){ //第2n行~!!!!!
        if(bit[i]==1||bit[i]==4||bit[i]==7){
            for(int j=0;j<n-1;j+=1){
                printf(" ");
            }
            printf("#");
        }
        else if(bit[i]==99){
            printf("#");
        }
        else{
            for(int j=0;j<n;j+=1){
                printf("#");
            }
        }

        if(i!=0){
            printf(" ");
        }
    }
    printf("\n");
    printf("\n");
}

int main()
{
    int n;
    //freopen("t.txt","w",stdout);
    while(scanf("%d %s",&n,bitc)!=EOF){
        getchar();
        for(int i=0,j=3;i<4;i+=1,j-=1){
            if(bitc[i]=='.'){
                bit[j]=99;
            }
            else{
                bit[j]=bitc[i]-'1'+1;
            }
        }
        tube(n);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值