首页 > 其他分享 >【洛谷 P5730】【深基5.例10】显示屏 题解(数组+循环)

【洛谷 P5730】【深基5.例10】显示屏 题解(数组+循环)

时间:2024-09-19 15:50:51浏览次数:3  
标签:... P5730 数字 10 int 题解 XXX ++ offset

【深基5.例10】显示屏

题目描述

液晶屏上,每个阿拉伯数字都是可以显示成 【洛谷 P5730】【深基5.例10】显示屏 题解(数组+循环)_字符数组 的点阵的(其中 X 表示亮点,. 表示暗点)。现在给出数字位数(不超过 【洛谷 P5730】【深基5.例10】显示屏 题解(数组+循环)_显示模式_02)和一串数字,要求输出这些数字在显示屏上的效果。数字的显示方式如同样例输出,注意每个数字之间都有一列间隔。

输入格式

第一行输入一个正整数 【洛谷 P5730】【深基5.例10】显示屏 题解(数组+循环)_显示模式_03,表示数字的位数。

第二行输入一个长度为 【洛谷 P5730】【深基5.例10】显示屏 题解(数组+循环)_显示模式_03 的自然数。

输出格式

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

样例 #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

提示

数据保证,【洛谷 P5730】【深基5.例10】显示屏 题解(数组+循环)_i++_05


思路

使用一个二维数组 t 来存储数字 0 到 9 的显示模式。每个数字的显示模式由一个 5x3 的字符数组表示,其中 'X' 表示亮点,'.' 表示空白。

根据输入的数字字符串,使用 printNum 函数将每个数字的显示模式复制到一个二维字符数组 s 中。在复制过程中,使用 offset 变量来记录每个数字的偏移量,以便正确地放置数字。每个数字之间通过 printLine 函数插入一行空白。最后,将 s 数组中的内容输出到屏幕上。


AC代码

#include <iostream>
#include <string>
#define AUTHOR "HEX9CF"
using namespace std;

const int N = 1e3 + 5;
const char t[10][5][3] = {{ 'X', 'X', 'X', 'X', '.', 'X', 'X', '.', 'X', 'X', '.', 'X', 'X', 'X', 'X', }, { '.', '.', 'X', '.', '.', 'X', '.', '.', 'X', '.', '.', 'X', '.', '.', 'X', }, { 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', }, { 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', 'X', }, { 'X', '.', 'X', 'X', '.', 'X', 'X', 'X', 'X', '.', '.', 'X', '.', '.', 'X', }, { 'X', 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', 'X', }, { 'X', 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', 'X', '.', 'X', 'X', 'X', 'X', }, { 'X', 'X', 'X', '.', '.', 'X', '.', '.', 'X', '.', '.', 'X', '.', '.', 'X', }, { 'X', 'X', 'X', 'X', '.', 'X', 'X', 'X', 'X', 'X', '.', 'X', 'X', 'X', 'X', }, { 'X', 'X', 'X', 'X', '.', 'X', 'X', 'X', 'X', '.', '.', 'X', 'X', 'X', 'X', }};

int n;
int offset;
string str;
char s[5][N];

void printNum(int x)
{
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j < 3; j++)
        {
            s[i][offset + j] = t[x][i][j];
        }
    }
    offset += 3;
}

void printLine()
{
    for (int i = 0; i < 5; i++)
    {
        s[i][offset] = '.';
    }
    offset++;
}

int main()
{
    cin >> n;
    cin >> str;
    offset = 0;
    for (int i = 0; i < n; i++)
    {
        if (i)
        {
            printLine();
        }
        printNum(str[i] - '0');
    }
    // cout << offset << endl;
    for (int i = 0; i < 5; i++)
    {
        for (int j = 0; j <= offset; j++)
        {
            putchar(s[i][j]);
        }
        putchar('\n');
    }
    return 0;
}

标签:...,P5730,数字,10,int,题解,XXX,++,offset
From: https://blog.51cto.com/HEX9CF/12057487

相关文章

  • luogu-P10596题解
    简要题意一个有\(N\)个元素的集合有\(2N\)个不同子集(包含空集),现在要在这\(2N\)个集合中取出若干集合(至少一个),使得它们的交集的元素个数为\(K\),求取法的方案数,答案模\(10^9+7\)。数据范围:\(1\leK\leN\le10^6\)。题解我们设\(f(i)\)表示选出子集大小恰好为\(i\)的......
  • 易优eyoucms网站报错 \core\library\think\db\Connection.php 第 307 行左右,SQLS
    根据提供的错误信息 SQLSTATE[HY000][1045]Accessdeniedforuser'cs2021'@'localhost'(usingpassword:YES),这个错误表明数据库访问被拒绝了,通常是因为用户名或密码不正确导致的。以下是几个可能的解决步骤:检查数据库连接配置:确认数据库连接配置文件中的用户名和密......
  • [1065] Reverse geocoding in python
    ToimplementreversegeocodinginPython,youcanusethegeopylibrary,whichprovidesaconvenientinterfaceforvariousgeocodingservices.Here’sastep-by-stepguidetohelpyougetstarted:Step-by-StepGuideInstallthegeopylibrary:pipinstall......
  • 【LeetCode Hot 100】4. 寻找两个正序数组的中位数
    题目描述要求出两个数组的中位数,第一想法当然是将这两个数组进行归并排序,然后直接得到排序后长数组的中位数。由于本题的两个数组都是排序后的数组,因此省去了排序的步骤。这种方法的时间复杂度为\(O(m+n)\),空间复杂度由于要存储排序后的长数组,所以也是\(O(m+n)\)。有没有相对更......
  • Hi3559A/C V100 集成了双核 A73 和双核 A53,支持 8K30/4K120 视频录制
    1.1概述Hi3559AV100是专业的8KUltraHDMobileCameraSOC,它提供了8K30/4K120广播级图像质量的数字视频录制,支持多路Sensor输入,支持H.265编码输出或影视级的RAW数据输出,并集成高性能ISP处理,同时采用先进低功耗工艺和低功耗架构设计......
  • TP5100 2A开关降压 8.4V/4.2V锂电池充电器芯片
    1概述●TP5100是一款开关降压型双节8.4V/单节4.2V锂电池充电管理芯片。其QFN16超小型封装与简单的外围电路,使得TP5100非常适用于便携式设备的大电流充电管理应用。同时,TP5100内置输入过流、欠压保护、芯片过温保护、短路保护、电池温度监控。●TP5100具有5V-12V输入电压......
  • 常用10款文件加密软件分享 | 2024办公文件加密方法,赶紧Get起来吧!
    在信息安全日益受到重视的今天,保护办公文件的安全尤为重要。选择合适的文件加密软件,可以有效防止数据泄露。以下是2024年推荐的10款常用文件加密软件,让我们一起来看看吧!1.Ping32文件加密软件Ping32是一款功能强大的文件加密软件,专为企业用户设计。它支持多种高级加密算法(如......
  • 【Java计算机毕设选题】2025毕业设计选题100+ 通过率最高的选题推荐
    文章目录前言选题介绍选题推荐我的优势源码获取前言❤️博主简介:全网累计客户1000+,培训机构讲师、全栈开发工程师、知乎/小红书优秀作者、腾讯云/阿里云VIP客户、专注Java、小程序、安卓领域和毕业项目开发❤️同学们可以先收藏起来,以免迷路,关于毕设选题,项目和论文的......
  • [1064] Change values in a DataFrame based on different values
    TochangevaluesinaDataFramebasedondifferentvalues,youcanuseseveralmethodsinPandas.Hereareafewcommonapproaches:UsinglocforConditionalReplacementYoucanusethelocmethodtoreplacevaluesbasedonacondition:importpandasasp......
  • py3.7+win10的cv2.xfeatures2d_SIFT.create()函数不存在问题
    python3.7环境window1064位cv2包问题。问题做图片处理用opencv-python做模板匹配的时候会用个sift模型,就会用到cv2.xfeatures2d_SIFT.create()这个函数,在我正要用它增加自己知识,巴拉巴啦....的时候,咦?!这是个什么鬼哦,没有这个函数呢。百度发现需要什么卸载原版本,换成opencv-......