hdu 杭电2074 叠筐

来源:互联网 发布:人工智能权威期刊 编辑:程序博客网 时间:2024/05/02 05:03
Problem Description
需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。

Input
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;

Output
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。

Sample Input
11 B A5 @ W

Sample Output
AAAAAAAAA ABBBBBBBBBAABAAAAAAABAABABBBBBABAABABAAABABAABABABABABAABABAAABABAABABBBBBABAABAAAAAAABAABBBBBBBBBA AAAAAAAAA @@@ @WWW@@W@W@@WWW@ @@@



#include<stdio.h>char map[100][100];int main(){    int n,i,j,mark;    char a,b,t,flag=0;    while(~scanf("%d %c %c",&n,&a,&b))    {        if(flag) putchar('\n');        flag=1;        if((n-1)%4)//判断哪个在最外面,这个是找规律         {            t=a;            a=b;            b=t;        }        t=a,mark=1;//t和mark的初始化         for(i=0;i<=n/2;i++)        {            t=a;            mark=1;            for(j=0;j<n;j++)            {                if(n!=1&&i==0&&(j==0||j==n-1))//注意n==1的时候                {                    putchar(' ');                    map[i][j]=' ';                    continue;}                map[i][j]=t;                putchar(t);                if(i>j||j>=(n-1)-i)//这也是找规律,什么时候要变                 {                    if(mark)//轮流变化                    {                        t=b;                        mark=0;                    }                    else                    {                        t=a;                        mark=1;                    }                }            }            putchar('\n');        }        for(i=n/2-1;i>=0;i--)        {            for(j=0;j<n;j++)            {                printf("%c",map[i][j]);            }            putchar('\n');        }    }    return 0;}


0 0