九度Online Judge 题目1432:叠筐 解答
来源:互联网 发布:sql什么意思 编辑:程序博客网 时间:2024/06/05 17:25
九度Online Judge 题目1432:叠筐 解答
提交网址: http://ac.jobdu.com/problem.php?pid=1432
内存限制:128 兆 时间限制:1 秒
- 题目描述:
把一个个大小差一圈的筐叠上去,使得从上往下看时,边筐花色交错。这个工作现在要让计算机来完成,得看你的了。
- 输入:
输入是一个个的三元组,分别是,外筐尺寸n(n为满足0<n<80的奇整数),中心花色字符,外筐花色字符,后二者都为ASCII可见字符;
- 输出:
输出叠在一起的筐图案,中心花色与外筐花色字符从内层起交错相叠,多筐相叠时,最外筐的角总是被打磨掉。叠筐与叠筐之间应有一行间隔。
- 样例输入:
- 11 B A
- 5 @ W
- 样例输出:
AAAAAAAAA
ABBBBBBBBBA
ABAAAAAAABA
ABABBBBBABA
ABABAAABABA
ABABABABABA
ABABAAABABA
ABABBBBBABA
ABAAAAAAABA
ABBBBBBBBBA
AAAAAAAAA
@@@
@WWW@
@W@W@
@WWW@
@@@
分析:
这是排版题中的一种类型(无明显规律),它所要求的图形不具有显著的规律性或者规律性较难直接应用到输出当中。为了解决此类问题,可以采取一种方法:先完成排版,再进行输出。
具体步骤:
1. 使用一个二维数组,从内向外一层层地填充字符(先完成1/4,然后使用竖直方向对称和对角线对称填充其他地方);
2. 去掉4个角(尺寸n=1时不处理).
AC代码:
#include<cstdio>#include<cstring>#include<iostream>using namespace std;int main(){ int n,k,i,j; char in_char,out_char; while(cin>>n>>in_char>>out_char && ((n>0 && n<80) && n%2!=0) ) // 避免了 短路与 的歧义性 { char s[n+1][n+1]; memset(s,'0',sizeof s); char fill_char; int flag=0; // flag用来记录框数的奇偶 for(k=(n+1)/2;k>=1;--k) { flag++; if(flag%2==1) fill_char=in_char; else if(flag%2==0) fill_char=out_char; for(i=k;i<=n+1-k;i++) { s[k][i]=fill_char; s[i][k]=fill_char; // 与第一句的游标走向关于对角线对称 s[i][n+1-k]=fill_char; // 与第一句的游标走向关于竖直方向对称 s[n+1-k][i]=fill_char; // 与第一句的游标走向关于水平方向对称 } } if(n!=1) { s[1][1]=' '; s[n][1]=' '; s[1][n]=' '; s[n][n]=' '; } for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { cout<<s[i][j]; } cout<<endl; } cout<<endl; } return 0;}
/************************************************************** Problem: 1432
Language: C++
Result: Accepted
Time:10 ms
Memory:1520 kb
****************************************************************/
1 0
- 九度Online Judge 题目1432:叠筐 解答
- 九度 Online Judge 之《剑指 Offer》一书相关题目解答
- 题目1000 九度Online Judge
- 题目1202 九度Online Judge
- 题目1015 九度Online Judge
- 题目1059 abc 九度Online Judge
- 题目 1056 最大公约数 九度Online Judge
- 题目1092 Fibonacci 九度Online Judge
- 九度Online Judge
- UVa online judge 题目解答汇总
- 题目1384:二维数组中的查找 --九度-online judge
- 九度Online Judge上部分题目代码
- 题目1020题 最小长方形 九度Online Judge
- 题目1021题 统计字符 九度Online Judge
- 题目 1048 判断三角形类型 九度Online Judge
- 题目 1047 素数判定 九度Online Judge
- 题目 1046 求最大值 九度Online Judge
- 题目 1045 百鸡问题 九度Online Judge
- 前序遍历和中序遍历树构造二叉树
- c++第三次作业
- 【数据结构和算法03】链表
- LinkedHashMap源码解析
- Android-银联支付
- 九度Online Judge 题目1432:叠筐 解答
- TextInputLayout使用以及自定义颜色
- LeetCode *** 116. Populating Next Right Pointers in Each Node
- C++“美化”界面
- Python 邮件发送smtplib
- Codeforces Round #303 (Div. 2)-C. Woodcutters(模拟)
- HTTP Content-type
- HttpClient介绍
- linux 字符驱动