全WA求助

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

Yuvxang @ 2024-07-23 10:36:42

和题解差不多的打表思路,看测试点没有什么问题

#include <iostream>
#include <string>
#include <cstdio>
using namespace std;

int main(void){
    string I, II, III, IV, V;
    string a = "XXX";
    string b = "..X";
    string c = "X.X";
    string d = "X..";
    char dot = '.';

    int n;
    cin >> n;
    getchar();
    string s;
    getline(cin, s);

    for(int i = 0;i < n;i++){
        int num = s[i] - '0';
        if(num == 0){
            I += a;
            II += c;
            III += c;
            IV += c;
            V += a;
        }
        else if(num == 1){
            I += b;
            II += b;
            III += b;
            IV += b;
            V += b;
        }
        else if(num == 2){
            I += a;
            II += b;
            III += a;
            IV += d;
            V += a;
        }
        else if(num == 3){
            I += a;
            II += b;
            III += a;
            IV += b;
            V += a;
        }
        else if(num == 4){
            I += c;
            II += c;
            III += a;
            IV += b;
            V += b;
        }
        else if(num == 5){
            I += a;
            II += d;
            III += a;
            IV += b;
            V += a;
        }
        else if(num == 6){
            I += a;
            II += d;
            III += a;
            IV += c;
            V += a;
        }
        else if(num == 7){
            I += a;
            II += b;
            III += b;
            IV += b;
            V += b;
        }
        else if(num == 8){
            I += a;
            II += c;
            III += a;
            IV += c;
            V += a;
        }
        else if(num == 9){
            I += a;
            II += c;
            III += a;
            IV += b;
            V += a;
        }

        if(i != n - 1)
        {
            I += dot;
            II += dot;
            III += dot;
            IV += dot;
            V += dot;
        }
    }
    cout << I << endl;
    cout << II << endl;
    cout << III << endl;
    cout << IV << endl;
    cout << V << endl;
    return 0;
}

输入 6 114514

输出为下

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

by QAQ_liu @ 2024-07-23 10:50:33

@Yuvxang emm,你看下我的打表


#include<bits/stdc++.h>
using namespace std;
char a[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;
string s;
int main(){
    cin>>n;
    cin>>s;
    for(int i=0;i<5;i++){
        for(int j=0;j<n;j++){
            for(int k=0;k<3;k++){
                cout<<a[s[j]-'0'][i][k];
            }
            if(j!=n-1) cout<<'.';
        }
        cout<<"\n";
    }
    return 0;
}

by Yuvxang @ 2024-07-23 11:23:32

我的代码和你的结果一样的,还是没有看出区别来,估计是格式问题吧。 谢谢大神

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

by amd47802574 @ 2024-07-26 09:05:32

你试试把这地方改下

getchar();
string s;
getline(cin, s);

全改成

string s;
cin>>s;

by Yuvxang @ 2024-08-12 07:14:59

@amd47802574 这样就过了,谢谢佬


|