题解:P5730 【深基5.例10】显示屏

· · 题解

P5730 显示屏

思路:

给你一串数字,请输出其对应的 3 \times 5 的点阵。

联系生活实际,做过电梯的都懂。

由于每个数字对应的点阵是固定的,因此本题可以使用贪心 + 暴力解决。只需将 0 \sim 9 中的所有整数的点阵存入数组,需要时再调用即可。

Code:

#include<bits/stdc++.h>
using namespace std;
int n;
string s;
string ans[10][5]={"XXX","X.X","X.X","X.X","XXX",
                     "..X","..X","..X","..X","..X",
                     "XXX","..X","XXX","X..","XXX",
                     "XXX","..X","XXX","..X","XXX",
                     "X.X","X.X","XXX","..X","..X",
                     "XXX","X..","XXX","..X","XXX",
                     "XXX","X..","XXX","X.X","XXX",
                     "XXX","..X","..X","..X","..X",
                     "XXX","X.X","XXX","X.X","XXX",
                     "XXX","X.X","XXX","..X","XXX"};
//ans数组存0~9中整数相对应的点阵。
int main(){
    cin>>n>>s;
    for(int i=0;i<5;i++){//5行。
        for(int j=0;j<n;j++){//n列。
            cout<<ans[s[j]-'0'][i];//输出对应点阵。
            if(j!=n-1)cout<<".";//输出间隔符。
        }
        cout<<"\n";//换行。
    }
    return 0;//好习惯。
}

有疑问随时私信哦!