zoukankan      html  css  js  c++  java
  • GDUFE ACM-1029

    题目:http://acm.gdufe.edu.cn/Problem/read/id/1029

    空心三角形

    Time Limit: 2000/1000ms (Java/Others)

    Problem Description:

        把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。
    
    

    Input:

    每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。
    
    

    Output:

    每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。
    
     
    

    Sample Input:

    X 2
    A 7
    @

    Sample Output:

     X
    XXX
     
          A
         A A
        A   A
       A     A
      A       A
     A         A
    AAAAAAAAAAAAA

    思路:先输出第一行n-1个空格,然后输出字符,如果不止两行,输出n-2个空格,字符,2*i-1个空格(i从1开始,递增),字符,循环输出,直至最后一行,输出2n-1字符

    难度:不算很难,但是我在输入那里写得很乱。。。有更好的方法

    代码:
     1 #include<stdio.h>
     2 int main()
     3 {
     4     char a;
     5     int n,i,j,e,d;
     6     scanf("%c",&a);
     7     getchar();
     8     if(a=='@') goto x1;
     9     while(scanf("%d",&n)!=EOF)
    10     {
    11         getchar();
    12         for(i=1;i<n;i++)
    13             printf(" ");
    14         printf("%c
    ",a);
    15         e=1;d=n;
    16         for(i=n-2;i>0;i--)
    17         {
    18             for(j=d-2;j>0;j--)
    19                 printf(" ");
    20             printf("%c",a);
    21             d--;
    22             for(j=0;j<e*2-1;j++)
    23                 printf(" ");
    24             printf("%c
    ",a);
    25             e++;
    26         }
    27         for(i=0;i<2*n-1;i++)
    28             printf("%c",a);
    29         printf("
    ");
    30         scanf("%c",&a);
    31         getchar();
    32         if(a=='@') break;
    33         else printf("
    ");
    34     }
    35     x1:return 0;
    36 }

    输入方法写得整洁一点的。。

     1 #include<stdio.h>
     2 int main()
     3 {
     4     char a;
     5     int n,i,j,e,d,c;
     6         c=0;
     7     while(scanf("%c",&a)!=EOF&&a!='@')
     8     {
     9         getchar();
    10                 scanf("%d",&n);
    11                 getchar():
    12                 if(c==1)
    13                    printf("
    ");
    14                  c=1;
    15         for(i=1;i<n;i++)
    16             printf(" ");
    17         printf("%c
    ",a);
    18         e=1;d=n;
    19         for(i=n-2;i>0;i--)
    20         {
    21             for(j=d-2;j>0;j--)
    22                 printf(" ");
    23             printf("%c",a);
    24             d--;
    25             for(j=0;j<e*2-1;j++)
    26                 printf(" ");
    27             printf("%c
    ",a);
    28             e++;
    29         }
    30         for(i=0;i<2*n-1;i++)
    31             printf("%c",a);
    32         printf("
    ");
    33     }
    34     return 0;
    35 }
  • 相关阅读:
    Collections接口下的Comparetor类和Comparable接口排序
    MySQL(二)、数据库数据类型
    MySQL(表设置、详细说明查询操作)、JDBC基础
    IO流:对象流、Poperties类
    IO流:System.in、SequenceInputStream合并流、内存输入输出流、数据流
    IO流:文件对象、字符流、字节流、缓冲流
    泛型
    集合
    String常用方法、toString()、equals()、compareTo()
    继承、抽象、接口、封装
  • 原文地址:https://www.cnblogs.com/ruo786828164/p/6006359.html
Copyright © 2011-2022 走看看