hdu-oj 2074 叠筐
2014-08-04 21:30
274 查看
叠筐
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 12157 Accepted Submission(s): 3135
[align=left]Problem Description[/align]
需要的时候,就把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
[align=left]Input[/align]
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
[align=left]Output[/align]
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
[align=left]Sample Input[/align]
11 B A
5 @ W
[align=left]Sample Output[/align]
AAAAAAAAA
ABBBBBBBBBA
ABAAAAAAABA
ABABBBBBABA
ABABAAABABA
ABABABABABA
ABABAAABABA
ABABBBBBABA
ABAAAAAAABA
ABBBBBBBBBA
AAAAAAAAA
@@@
@WWW@
@W@W@
@WWW@
@@@ 解题思路:字符交替围成一圈;附代码:
#include<stdio.h> int main() { int n,i,j,flag=0,l=0; char a,b,str[81][81],temp; while(scanf("%d %c %c",&n,&a,&b)!=EOF) { if(l!=0) { printf("\n"); } l=1; if(n==1) { printf("%c\n",a); continue; } flag=1; if(((n-1)/2)%2==0)//判断从哪个字符开始交替循环 { temp=b; b=a; a=temp; } while(flag<=n) { for(i=1;i<=n;i++) { str[i][flag]=str[i][n-flag+1]=str[flag][i]=str[n-flag+1][i]=(flag%2==1?b:a); } flag++; } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(i==1&&j==1||i==1&&j==n||i==n&&j==1||i==n&&j==n) { printf(" "); continue; } printf("%c",str[i][j]); } printf("\n"); } } return 0; }
相关文章推荐
- hdu-oj 2049 不容易系列之(4)——考新郎
- hdu-oj 2003 求绝对值
- 【HDU-oj】-2157-How many ways??(矩阵)
- 数塔问题(Hdu_oj2084)DP
- hdu-oj 1405 The Last Practice
- hdu-oj 1108 最小公倍数
- hdu-oj 1555 How many days?
- hdu-oj 1256 画8
- 九度OJ 1442/HDU 2817 (二分求幂)
- hdu-oj ZOJ问题
- hdu-oj 1563 Find your present!
- HDU-OJ-1233 还是畅通工程
- 杭电OJ(HDU)-ACMSteps-Chapter Two-《An Easy Task》《Buildings》《decimal system》《Vowel Counting》
- hdu-oj 矩形A + B
- HDU 1814 Peaceful Commission / HIT 1917 Peaceful Commission /CJOJ 1288 和平委员会(2-sat模板题)
- HDU 水题(基础题)附各大OJ题目分类
- hdu-oj 2004 成绩转换
- hdu-oj 1017 A Mathematical Curiosity
- hdu 2074 叠筐 好有意思的画图题
- hdu-oj 1846 Brave Game