【洛谷刷题笔记】P5730 【深基5.例10】显示屏

一、题目:

【深基5.例10】显示屏

题目描述

液晶屏上,每个阿拉伯数字都是可以显示成 $3\times5$ 的点阵的(其中 X 表示亮点,. 表示暗点)。现在给出数字位数(不超过 $100$)和一串数字,要求输出这些数字在显示屏上的效果。数字的显示方式如同样例输出,注意每个数字之间都有一列间隔。

输入格式

第一行输入一个正整数 $n$,表示数字的位数。

第二行输入一个长度为 $n$ 的自然数。

输出格式

输出五行,表示显示屏上的数字。

样例 #1

样例输入 #1

10
0123456789

样例输出 #1

XXX...X.XXX.XXX.X.X.XXX.XXX.XXX.XXX.XXX
X.X...X...X...X.X.X.X...X.....X.X.X.X.X
X.X...X.XXX.XXX.XXX.XXX.XXX...X.XXX.XXX
X.X...X.X.....X...X...X.X.X...X.X.X...X
XXX...X.XXX.XXX...X.XXX.XXX...X.XXX.XXX

提示

数据保证,$1 \leq n \leq 100$。

二、思路:

打表题,但是看了一圈貌似我的思路还有点独特(眼睛好痛);
要点就三个:
1.memset(a, ‘.’, sizeof(a));//全部初始化为“.”,后面只设定“X”。
2.y += 4;//将“光标”移动到下一个数字的左上角
3.j <= 3 * n + n – 1;此条件配合数组初始化完成数字之间的间隔

三、源码:

#include <iostream>
#include <string.h>
using namespace std;

char a[10][400];

int main() {
    int n;
    cin >> n;
    memset(a, '.', sizeof(a));//全部初始化为“.”,后面只设定“X”。

    int x = 1;
    int y = 1;

    for (int i = 1; i <= n; i++) {
        char t ;
        cin >> t;
        switch (t) {
            case '0':
                a[x][y] = 'X';
                a[x + 1][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 3][y] = 'X';
                a[x + 4][y] = 'X';

                a[x][y + 1] = 'X';
                a[x + 4][y + 1] = 'X';

                a[x][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case '1':
                a[x][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case'2':
                    a[x][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 3][y] = 'X';
                a[x + 4][y] = 'X';
                a[x][y + 1] = 'X';
                a[x + 2][y + 1] = 'X';
                a[x + 4][y + 1] = 'X';
                a[x][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case'3':
                    a[x][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y] = 'X';
                a[x][y + 1] = 'X';
                a[x + 2][y + 1] = 'X';
                a[x + 4][y + 1] = 'X';
                a[x][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case '4':
                a[x][y] = 'X';
                a[x + 1][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 2][y + 1] = 'X';
                a[x][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case'5':
                    a[x][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y] = 'X';
                a[x][y + 1] = 'X';
                a[x + 2][y + 1] = 'X';
                a[x + 4][y + 1] = 'X';
                a[x][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 1][y] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case'6':
                    a[x][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y] = 'X';
                a[x][y + 1] = 'X';
                a[x + 2][y + 1] = 'X';
                a[x + 4][y + 1] = 'X';
                a[x][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 1][y] = 'X';
                a[x + 4][y + 2] = 'X';
                a[x + 3][y] = 'X';
                break;
            case '7':
                a[x][y] = 'X';
                a[x][y + 1] = 'X';
                a[x][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case '8':
                a[x][y] = 'X';
                a[x + 1][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 3][y] = 'X';
                a[x + 4][y] = 'X';

                a[x][y + 1] = 'X';
                a[x + 2][y + 1] = 'X';
                a[x + 4][y + 1] = 'X';

                a[x][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
            case '9':
                a[x][y] = 'X';
                a[x + 1][y] = 'X';
                a[x + 2][y] = 'X';
                a[x + 4][y] = 'X';

                a[x][y + 1] = 'X';
                a[x + 2][y + 1] = 'X';
                a[x + 4][y + 1] = 'X';

                a[x][y + 2] = 'X';
                a[x + 1][y + 2] = 'X';
                a[x + 2][y + 2] = 'X';
                a[x + 3][y + 2] = 'X';
                a[x + 4][y + 2] = 'X';
                break;
        }

        y += 4;//将“光标”移动到下一个数字的左上角

    }



    for (int i = 1; i <= 5; i++) {
        for (int j = 1; j <= 3 * n + n - 1; j++) {
            cout << a[i][j];
        }
        cout << endl;
    }
}

欢迎改正与补充

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇