HDU2074 叠筐【图形打印】

题目链接:

http://acm.hdu.edu.cn/showproblem.php?pid=2074

题目大意:

打印一个两种花色层层交错的图形。给你最外环的尺寸N和两个字符表示花色A(中心

花色)、B(外环花色)。然后打印出这个图形。

思路:

用二维字符数组s[][]来存储图形。然后利用三重循环,一重k用来表示层数,剩下两重

表示第i行第j列的字符,将相应层数的字符存储进数组s[][]中,最后将它输出出来。

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;

char s[90][90];
int main()
{
    int N;
    char a,b;
    int ok = 0;
    while(cin >> N)
    {
        if(ok == 0)
            ok = 1;
        else
            cout << endl;
        memset(s,0,sizeof(s));
        cin >> a >> b;
        if(N == 1)
        {
            cout << a << endl;
            continue;
        }
        int m = (N+1)/2;    //层数
        if(m&1)
            swap(a,b);
        for(int k = 1; k <= m; ++k)
        {
            for(int i = k; i <= N-k+1; ++i)
            {
                for(int j = k; j <= N-k+1; ++j)
                {
                    if((i==1 && (j==1 || j==N)) || (i==N && (j==1 || j==N)))
                        s[i][j] = ' ';
                    else if(k&1 && (i==k||i==N-k+1))
                        s[i][j] = b;
                    else if(k&1 && (j==k||j==N-k+1))
                        s[i][j] = b;
                    else if(~(k&1) &&(i==k||i==N-k+1))
                        s[i][j] = a;
                    else if(~(k&1) && (j==k||j==N-k+1))
                        s[i][j] = a;
                }
            }
        }

        for(int i = 1; i <= N; ++i)
        {
            for(int j = 1; j <= N; ++j)
                cout << s[i][j];
            cout << endl;
        }
    }

    return 0;
}
时间: 2024-10-18 08:37:48

HDU2074 叠筐【图形打印】的相关文章

hdu2074 叠筐

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 20470    Accepted Submission(s): 5348 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺寸

HDU2074 叠筐(模拟问题)

Problem Description http://acm.hdu.edu.cn/showproblem.php?pid=2074 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符: Output 输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角

题目1126:打印极值点下标 题目1432:叠筐

题目描述: 把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. 输入: 输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符: 输出: 输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉.叠筐与叠筐之间应有一行间隔. 样例输入: 11 B A 5 @ W 样例输出: AAAAAAAAA ABBBBBBBBBA ABAA

hduoj 2074 叠筐

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12122    Accepted Submission(s): 3122 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺

hdu 2074 叠筐 好有意思的画图题

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12160    Accepted Submission(s): 3136 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺

题目1432:叠筐

时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:6048 解决:1412 题目描述: 把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. 输入: 输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符: 输出: 输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉.叠筐与叠筐之间应有一行间隔. 样例输入: 11

hdoj2074 -- 叠筐

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 17006    Accepted Submission(s): 4421 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺寸

HDU 2074 叠筐

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 16088    Accepted Submission(s): 4201 Problem Description 需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作现在要让计算机来完成,得看你的了. Input 输入是一个个的三元组,分别是,外筐尺

HDUJ 2074 叠筐 模拟

叠筐 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12017    Accepted Submission(s): 3074 Problem Description 须要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错.这个工作如今要让计算机来完毕,得看你的了. Input 输入是一个个的三元组,各自是,外筐尺