F. 叠筐
1000ms
1000ms
32768KB
64-bit integer IO format:
%I64d Java class name:
Main
Font Size:
需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
Input
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
Output
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
Sample Input
11 B A 5 @ W
Sample Output
AAAAAAAAA ABBBBBBBBBA ABAAAAAAABA ABABBBBBABA ABABAAABABA ABABABABABA ABABAAABABA ABABBBBBABA ABAAAAAAABA ABBBBBBBBBA AAAAAAAAA @@@ @WWW@ @W@W@ @WWW@ @@@ PE了n次啊!#include<stdio.h> int main() { int n,i,j,t,temp; char a,b; char key; int flag=1; int k; int step=0; char map[85][85]; while(scanf("%d %c %c",&n,&a,&b)!=EOF) { if(step) printf("\n"); step++; if(n==1) { printf("%c\n",a); } else { t=0; temp=n; if((temp/2)%2==0) { key=a; } else { key=b; } while(temp>=1) { t++; for(i=t; i<=temp; i++) { map[i][t]=key; map[i][temp]=key; } for(i=t; i<=temp; i++) { map[t][i]=key; map[temp][i]=key; } temp=temp-1; if(key==a) { key=b; } else { key=a; } } map[1][1]=' '; map[n][n]=' '; map[1][n]=' '; map[n][1]=' '; for(i=1; i<=n; i++) { for(j=1; j<=n; j++) { printf("%c",map[i][j]); } printf("\n"); } } } return 0; }