题目
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
输入描述
输入一个数字串,用点阵输出。
输出描述
按题意输出
扫描二维码关注公众号,回复: 12675527 查看本文章![]()
示例
输入
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
又忘记了,每次都因为这个找错耽误好多时间…