zoukankan      html  css  js  c++  java
  • [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;
    }
    

    运行截图:


  • 相关阅读:
    矩阵特征值和椭圆长短轴的关系?
    Harris角点检测原理详解
    SIFT特征提取分析
    Sift中尺度空间、高斯金字塔、差分金字塔(DOG金字塔)、图像金字塔
    图像处理与计算机视觉的经典书籍
    霍夫变换
    熔断原理与实现Golang版
    如何利用go-zero在Go中快速实现JWT认证
    如何让服务在流量暴增的情况下保持稳定输出
    企业级RPC框架zRPC
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697964.html
Copyright © 2011-2022 走看看