题目描述
把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
输入描述
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
输出描述
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
输入样例
5 ^ !
7 ( )
0
输出样例
^^^
^!!!^
^!^!^
^!!!^
^^^
)))))
)((((()
)()))()
)()()()
)()))()
)((((()
)))))
提示
AC代码如下:
#include <stdio.h>
#include <math.h>
int main()
{
int n,i,j,s,t,m,k=0;
char a,b,c[81][81],d;
while (scanf("%d %c %c",&n,&a,&b)!=EOF)
{
if (k++)
{
printf("\n");
}
if (n==1)
{
printf("%c\n",a);
continue;
}
s=n/2+1;
t=n/2+1;
c[s][t]=a;
d=b;
m=1;
while (m<=n/2)
{
t++;
s--;
for (i=s;i<=t;i++)
{
for (j=s;j<=t;j++)
{
if ((i==s)||(i==t))
{
c[i][j]=d;
}
else
{
if ((j==s)||(j==t))
{
c[i][j]=d;
}
}
}
}
if (d==b)
{
d=a;
}
else
{
d=b;
}
m++;
}
c[1][1]=' ';
c[1][n]=' ';
c[n][1]=' ';
c[n][n]=' ';
for (i=1;i<=n;i++)
{
c[i][n+1]='\n';
}
for (i=1;i<=n;i++)
{
for (j=1;j<=n+1;j++)
{
printf("%c",c[i][j]);
}
}
}
return 0;
}