铂金组第二题

空心三角形
Problem Description

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

Input

每行包含一个字符和一个整数n(0

Output

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

Sample Input

X 2
A 7
@

Sample Output

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

问题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2091

问题简述:一行输入一个字符x和一个整数n,输出高为n的x空心三角形

问题分析:循环语句逐个输出相应位置的相应元素(字符x或者空格)

程序说明:定义一个sum变量,当sum大于0时,每个三角形间空上一行;
在while循环中,循环输入数据得到空心三角形,直到输入@终止循环。
在for (int i = 1;i <= n;i++)循环中,逐个输出第i行的元素;
分为第一行,最后一行,中间行三个部分;
中间行的两个x字符为第n+i-1和第n-i+1个元素,其余为空格。

#include
using namespace std;
int main()
{
    int sum=0;
    while (1)
    {
        char x;int n;
        cin >> x;
        if (x != '@')
        {
            
            if (sum > 0)
                cout << endl;
            cin >> n;
            for (int i = 1;i <= n;i++)
            {
                if (i == 1)
                {
                    for (int L = 1;L< n;L++)
                        cout << ' ';
                    cout << x << endl;
                }
                else if (i == n)
                {
                    for (int M = 1;M<= 2 * n - 1;M++)
                        cout << x;
                    cout << endl;
                }
                else
                    for (int k = 1;k < n+i;k++)
                    {
                        if (k == (n - i + 1))
                            cout << x;
                        else if( k == (n - 1 + i))
                            cout<

你可能感兴趣的:(铂金组第二题)