【机试备考】Day17-数字填充 | vector二维数组赋初值

题目

BUPT 2018 计算机 ProblemB
用点阵表示数字,5*3的方格表示0~9,具体如下:

0的表示:

111
101
101
101
111

1的表示:

001
001
001
001
001

2的表示:

111
001
111
100
111

9的表示:

111
101
111
001
111

输入描述

输入一个数字串,用点阵输出。

输出描述

按题意输出

示例

输入

02

输出

111111
101001
101111
101100
111111

题解

刚开始没看懂这道题的01分布是什么规律,后来发现就是视觉上用1拼成的数字,然后就明白了这就是一道暴力题,没啥规律可言,一个一个写就行了

#include<bits/stdc++.h>
using namespace std;
int main()
{
    
    
    string s;
    cin>>s;
    vector<vector<string>>number(10,vector<string>());
    number[0]= {
    
    "111","101","101","101","111"};
    number[1]= {
    
    "001","001","001","001","001"};
    number[2]= {
    
    "111","001","111","100","111"};
    number[3]= {
    
    "111","001","111","001","111"};
    number[4]= {
    
    "101","101","111","001","001"};
    number[5]= {
    
    "111","100","111","001","111"};
    number[6]= {
    
    "111","100","111","101","111"};
    number[7]= {
    
    "111","001","001","001","001"};
    number[8]= {
    
    "111","101","111","101","111"};
    number[9]= {
    
    "111","101","111","001","111"};

    for(int i=0;i<5;i++)
    {
    
    
        for(int j=0;j<s.length();j++)
            cout<<number[s[j]-'0'][i];
        cout<<endl;
    }
}

注意】输入的string,单个元素是char,别忘了s[j]-'0'才能转成int

又忘记了,每次都因为这个找错耽误好多时间…

猜你喜欢

转载自blog.csdn.net/qq_43417265/article/details/113682121