• [ACM] hdu 4706 Children's Day


    Children's Day

    Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other)
    Total Submission(s) : 10   Accepted Submission(s) : 5

    Font: Times New Roman | Verdana | Georgia

    Font Size:  

    Problem Description

    Today is Children's Day. Some children ask you to output a big letter 'N'. 'N' is constituted by two vertical linesand one diagonal. Each pixel of this letter is a character orderly. No tail blank is allowed.
    For example, this is a big 'N' start with 'a' and it's size is 3.
    a e
    bdf
    c g
    

    Your task is to write different 'N' from size 3 to size 10. The pixel character used is from 'a' to 'z' continuously and periodic('a' is reused after 'z').

    Input

    This problem has no input.

    Output

    Output different 'N' from size 3 to size 10. There is no blank line among output.

    Sample Output

    [pre]
    a e
    bdf
    c g
    h  n
    i mo
    jl p
    k  q
    .........
    r        j
    [/pre]
    

    Hint

    Not all the resultsare listed in the sample. There are just some lines. The ellipsis expresseswhat you should write.

    Source

    2013 ACM/ICPC Asia Regional Online —— Warmup


    解题思路:

    样例中怎么给,我们就跟着怎么做,模拟输出图形。该题属于比较简单的。字母从a开始一直到z,再从a开始,所以我们只要用一个全局变量 char s='a'。对于每个'N'图形,先最左边竖着在数组中填字母,然后从左上角向右上角填字母,最后从最右边竖着填字母。记得判断s的值,如果大于'z',要重新赋值为’a' .

    代码:

    #include <iostream>
    #include <string.h>
    using namespace std;
    char tu[11][11];
    char s='a';
    
    void output(int n)
    {
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
            tu[i][j]=' ';//初始化数组
        for(int i=1;i<=n;i++)//最左边竖着填字母
            {
                tu[i][1]=s++;
                if(s>'z')
                    s='a';
            }
        for(int i=n-1;i>=2;i--)//斜着从左向右填字母
            {
                tu[i][n-i+1]=s++;
                if(s>'z')
                    s='a';
            }
        for(int i=1;i<=n;i++)//最右边竖着填字母
            {
                tu[i][n]=s++;
                if(s>'z')
                    s='a';
            }
        for(int i=1;i<=n;i++)//输出“N'图形
        {
            for(int j=1;j<=n;j++)
                cout<<tu[i][j];
            cout<<endl;
        }
    }
    
    int main()
    {
        for(int i=3;i<=10;i++)
            output(i);
        return 0;
    }
    

    运行截图:


  • 相关阅读:
    《.NET深入体验与实战精要》读书体会
    为什么周易中有64卦?
    16进制与8进制之间的快速转码
    3种夸克有多少组合?
    分辨率宽高和为整千?
    abt DVD
    为什么有20种氨基酸?
    HD与BD次时代之战!
    [转载]Java一些基础问题
    [转载]Java环境变量配置
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697964.html
Copyright © 2020-2023  润新知