美文网首页我用 Linux程序员Linux
洛谷题解P4327 彼得潘框架

洛谷题解P4327 彼得潘框架

作者: 海天一树X | 来源:发表于2019-03-30 23:14 被阅读4次

    一、题目

    https://www.luogu.org/problemnew/show/P4327

    二、代码

    
    #include<iostream>
    #include<cstring>
    using namespace std;
    
    char a[6][62];
    string s;
    
    void frame(char c,int col,char flag)
    {
        a[3][col]=c;
        // 第1行与第5行一样,所以a[1][col]=a[5][col]
        // 第2行关于col列对称,且与第4行一样。所以a[2][col+1]=a[r][col+1]=a[4][col-1]=a[2][col-1]
        // 第3行关于col列对称,所以a[3][col+2]=a[3][col-2]
        a[1][col]=a[2][col+1]=a[3][col+2]=a[4][col+1]=a[5][col]=a[4][col-1]=a[3][col-2]=a[2][col-1]=flag;
    }
    
    int main()
    {
        memset(a,'.',sizeof(a));
        cin>>s;
        int n = s.size();
        
        // 注意观察第一行#或*出现的位置是4*i+3
        for(int i=0;i<n;i++)
        {
            // '*'先不画上
            if(i%3==2)
            {
                continue;
            }
            frame(s[i],4*i+3,'#');
        }
    
        for(int i=2;i<n;i+=3)
        {
            // 画上'*',若遇'#'直接覆盖
            frame(s[i],4*i+3,'*');
        }
    
        for(int i=1;i<6;i++)
        {
            for(int j=1;j<4*n+2;j++)
            {
                cout<<a[i][j];
            }
            cout<<endl;
        }
    
        return 0;
    }
    

    少儿编程、信息学竞赛咨询请加微信307591841或QQ群581357582


    信息学竞赛公众号.jpg

    相关文章

      网友评论

        本文标题:洛谷题解P4327 彼得潘框架

        本文链接:https://www.haomeiwen.com/subject/deuebqtx.html