HDU 2074 叠筐
2016-01-28 00:45
211 查看
叠筐 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 输入是一个个的三元组,分别是,外筐尺寸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@ @@@ Author qianneng Source 浙江工业大学网络选拔赛 |
#include <iostream> #include <cstdio> using namespace std; char s[85][85]; int main() { char a,b; int n; int f=0; while(~scanf("%d %c %c",&n,&a,&b)){ if(f) cout<<endl; if(n==1){//忘记考虑了 cout<<a<<endl; continue; } int x=n/2+1; s[x][x]=a; for(int i=1;i<=n/2;i++){ for(int j=x-i;j<=x+i;j++){ if(i%2) s[x-i][j]=s[x+i][j]=s[j][x-i]=s[j][x+i]=b; else s[x-i][j]=s[x+i][j]=s[j][x-i]=s[j][x+i]=a; } } s[1] =s[1][1]=s [1]=s =' '; for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<s[i][j]; } cout<<endl; } f=1; } return 0; }
相关文章推荐
- 用JS将指定时间转化成用户当地时区的时间
- iOS图片的伪裁剪(改变图片的像素值)
- 关于Javascript中的复制
- HDU 2076 夹角有多大
- sprintf和sscanf
- HDU 2073 无限的路
- JavaScript contains
- hdu 5606 tree(并查集)
- mongodb中最为简单的一种安装方法
- 介绍在Swift2面向协议编程(译文)
- 关于正则
- 汇聚点滴精彩
- SQL Server ->> 时间函数: EOMONTH, DATEFROMPARTS, TIMEFROMPARTS, DATETIMEFROMPARTS, DATETIMEOFFSETFROMPARTS
- Game of Sum(动态规划)
- Could not open file ..\output\core_cm3.o: No such file or directory
- Mac 创建.txt文件
- [工作中的设计模式]原型模式prototype
- python相关的工具
- 流行的ios开源项目
- 推箱子小游戏