hdu2091 空心三角形 解题报告 (输入输出)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2091
菜鸟(像我这样的)练习输入输出格式的好题目
没有多余的空行 这是很容易错的地方
第一行和最后一行需要特殊考虑 第一行后面没空格
并且输出要求每组测试一个空行 最后一组没空行 因为不知道哪组是最后一组 因此只能除了第一组之后每一组之前都打一个空行(居然吧空行的位置打错了 在“@”后打了个空行 囧~)
除了第一行和最后一行之外 其他可以通过枚举的方式推出来
输出样例:(*表示空格 空行表示空行 )
这样就能看明白了
*X空行
XXX空行
空行
******A空行
*****A*A空行
****A***A空行
***A*****A空行
**A*******A空行
*A*********A空行
AAAAAAAAAAAAA空行
最后 粘上代码:
1 #include<iostream>
2 #include<cstdio>
3 using namespace std;
4 int main()
5 {
6
7 //freopen("C:\\Users\\yujiaao\\Desktop\\测试专用\\in.txt","r",stdin);
8 //freopen("C:\\Users\\yujiaao\\Desktop\\测试专用\\out.txt","w",stdout);
9 char ch;
10 int depth,i,j,ncase=0;
11 while(scanf("%c %d",&ch,&depth)!=EOF)
12 {
13
14 getchar();
15 if(ch=='@')
16 break;
17 if(ncase!=0)
18 {
19 printf("\n");
20 }
21 for(j=1;j<=depth-1;j++)
22 {
23 for(i=1;i<=depth-j;i++)
24 {
25 printf("");
26 }
27 printf("%c",ch);
28 if(j!=1)
29 {
30 for(i=1;i<=2*(j-1)-1;i++)
31 {
32 printf("");
33 }
34 printf("%c",ch);
35 }
36 printf("\n");
37 }
38 for(j=0;j<2*depth-1;j++)
39 printf("%c",ch);
40 printf("\n");
41 ncase++;
42 }
43 //system("pause");
44 return 0;
45 }