HDU——2091空心三角形
2016-01-24 19:42
302 查看
把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。
[align=left]Input[/align]
每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。
[align=left]Output[/align]
每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。
[align=left]Sample Input[/align]
[align=left]Sample Output[/align]
搞了半天总是WA,看看discuss里大神们都是PE,为毛我总是WA?不服啊
后来陆续发现了两个问题
1、输出之后没有清空字符数组,导致下一次遍历修改图形会被上次的数据影响,比如输入A 6之后再来一组C 5,这样最后会多输出一个C。之前没发现······
2、最坑爹的,没看见题目中说的“显然行末没有多余的空格”。因此最后的输出阶段循环条件从j<2*n变成j<n+i(即一行输完所需字符后不要再输出后面的空格)
3、看了discuss才知道这也是个坑,这三角形的空行是介于输入与输出之间的,不是每组数据之间。
附上AC代码
(寒假刚开始自学C++,尽量用C++的东西了)
[align=left]Input[/align]
每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。
[align=left]Output[/align]
每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。
[align=left]Sample Input[/align]
X 2 A 7 @
[align=left]Sample Output[/align]
X XXX A A A A A A A A A A A AAAAAAAAAAAAA
搞了半天总是WA,看看discuss里大神们都是PE,为毛我总是WA?不服啊
后来陆续发现了两个问题
1、输出之后没有清空字符数组,导致下一次遍历修改图形会被上次的数据影响,比如输入A 6之后再来一组C 5,这样最后会多输出一个C。之前没发现······
2、最坑爹的,没看见题目中说的“显然行末没有多余的空格”。因此最后的输出阶段循环条件从j<2*n变成j<n+i(即一行输完所需字符后不要再输出后面的空格)
3、看了discuss才知道这也是个坑,这三角形的空行是介于输入与输出之间的,不是每组数据之间。
附上AC代码
(寒假刚开始自学C++,尽量用C++的东西了)
#include <iostream> #include <cmath> #include <cstring> using namespace std; int main(void) { int n,i,j,Count=0; char ch,ma[120][120]; while(cin>>ch) { if(ch=='@') { break; } Count++; cin>>n; if(Count!=1) cout<<'\n'; for (i=0; i<n; i++) { if (i!=n-1) for (j=0; j<2*n; j++) { if ((j==n-i-1)||(j==n+i-1)) ma[i][j]=ch; else ma[i][j]=' '; } else for (j=0; j<2*n-1; j++) { ma[i][j]=ch; } } for (i=0; i<n; i++) { for (j=0; j<n+i; j++) { cout<<ma[i][j]; } cout<<'\n'; } memset(ma,' ',sizeof(ma)); } return 0; }
相关文章推荐
- Vigenère密码题解
- Python爬虫入门(7):正则表达式
- 【POJ 2400】 Supervisor, Supervisee(KM求最小权匹配)
- <LeetCode OJ> 238. Product of Array Except Self
- 【时间管理】调整我的时间轴
- 数据结构基础(四)树和二叉树
- 使用gcc和cmake编译工具编辑opencv例子
- 兔子出生总数问题
- IIemaGpmuJ.45
- thinkphp许愿墙后台
- Baby Ming and Weight lifting
- 创建动态的表格
- 爱因斯坦 上楼梯问题 若每步跨2阶,剩1阶 两种方法
- sgnirtSylpitluM.43
- Python爬虫入门(6):Cookie的使用
- hdu 1013 Digital Roots(简单题)
- Python爬虫入门(5):URLError异常处理
- Windwos下安装Hadoop
- C++学习笔记(三) 域运算符 new delete运算符 重载 name managling与extern"c" 带默认参数函数
- Python爬虫入门(4):Urllib库的高级用法