HDU - 2091 空心三角形

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
#include <stdio.h>

using namespace std;

int main()
{
    int n;
    char c;
    int t = 0;
    while (~scanf("%c", &c)){
        if (c == '@')
            break;
        scanf("%d", &n);
        getchar();
        if (t > 0)
            printf("\n");
        if (n == 1)
            printf("%c\n", c);
        else {
            for (int i = 0; i < n-1; i++)
                printf(" ");
            printf("%c\n", c);
            for (int i = 2; i < n; i++){
                for (int j = 0; j < n-i; j++)
                    printf(" ");
                printf("%c", c);
                for (int j = 0; j < 2*(i-1)-1; j++)
                    printf(" ");
                printf("%c\n", c);
            }
            for (int i = 0; i < 2*n-1; i++)
                printf("%c", c);
            printf("\n");
        }
        t++;
    }
    return 0;
}
发布了359 篇原创文章 · 获赞 371 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/Aibiabcheng/article/details/105353212
今日推荐