# 等腰三角形

本题目要求你在控制台输出一个由数字组成的等腰三角形。具体的步骤是：

先用1,2,3，…的自然数拼一个足够长的串
用这个串填充三角形的三条边。从上方顶点开始，逆时针填充。
比如，当三角形高度是8时：  
![](https://img-blog.csdnimg.cn/20190203174943179.png)

输入，一个正整数n(3<n<300),表示三角形的高度  
输出，用数字填充的等腰三角形。  
为了便于测评，我们要求空格一律用"."代替。  

**例如：**

**输入：**

5

**程序应该输出：**

![](https://img-blog.csdnimg.cn/20190203175048400.png)

**再例如：**

**输入：**

10

**程序应该输出：**

![](https://img-blog.csdnimg.cn/20190203175133907.png)

**再例如：**

**输入：**

15

**程序应该输出：**

![](https://img-blog.csdnimg.cn/20190203175213126.png)


## aop

### before

```cpp
#include <bits/stdc++.h>
using namespace std;
string str;
stringstream ss;
```
### after

```cpp

```

## 答案

```cpp
int main()
{
    int n;
    cin >> n;
    int x = 2 * n - 1;
    for (int i = 1; i <= 1500; i++)
    { 
        string str1;
        ss << i;
        ss >> str1;
        str += str1;
        ss.clear();
    }
    int length = 4 * n - 4; 
    for (int i = 1; i <= n; i++)
    { 
        if (i != n && i != 1)
        { 
            for (int j = 1; j <= n + i - 1; j++)
            {
                if (j == n - i + 1)
                { 
                    cout << str[i - 1];
                }
                else if (j == 2 * n - (n - i + 1))
                {                                             
                    cout << str[4 * n - 4 - (i - 1)] << endl; 
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else if (i == 1)
        {
            for (int x = 1; x <= n; x++)
            { 
                if (x == n)
                {
                    cout << '1' << endl;
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else
        {
            for (int m = 1; m <= 2 * n - 1; m++)
            { 
                cout << str[n + (m - 2)];
            }
        }
    }
    return 0;
}
```
## 选项


### A

```cpp
int main()
{
    int n;
    cin >> n;
    int x = 2 * n - 1;
    for (int i = 1; i <= 1500; i++)
    { 
        string str1;
        ss << i;
        ss >> str1;
        str += str1;
        ss.clear();
    }
    int length = 4 * n - 4; 
    for (int i = 1; i <= n; i++)
    { 
        if (i != n && i != 1)
        { 
            for (int j = 1; j <= n + i - 1; j++)
            {
                if (j == n - i + 1)
                { 
                    cout << str[i - 1];
                }
                else if (j == 2 * n - (n - i + 1))
                {                                       
                    cout << str[4 * n - 4 - i] << endl; 
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else if (i == 1)
        {
            for (int x = 1; x <= n; x++)
            { 
                if (x == n)
                {
                    cout << '1' << endl;
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else
        {
            for (int m = 1; m <= 2 * n - 1; m++)
            { 
                cout << str[n + (m - 2)];
            }
        }
    }
    return 0;
}
```

### B

```cpp
int main()
{
    int n;
    cin >> n;
    int x = 2 * n - 1;
    for (int i = 1; i <= 1500; i++)
    { 
        string str1;
        ss << i;
        ss >> str1;
        str += str1;
        ss.clear();
    }
    int length = 4 * n - 4; 
    for (int i = 1; i <= n; i++)
    { 
        if (i != n && i != 1)
        { 
            for (int j = 1; j <= n + i - 1; j++)
            {
                if (j == n - i + 1)
                { 
                    cout << str[i - 1];
                }
                else if (j == 2 * n - (n - i + 1))
                {                                             
                    cout << str[4 * n - 4 - (i + 1)] << endl; 
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else if (i == 1)
        {
            for (int x = 1; x <= n; x++)
            { 
                if (x == n)
                {
                    cout << '1' << endl;
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else
        {
            for (int m = 1; m <= 2 * n - 1; m++)
            { 
                cout << str[n + (m - 2)];
            }
        }
    }
    return 0;
}
```

### C

```cpp
int main()
{
    int n;
    cin >> n;
    int x = 2 * n - 1;
    for (int i = 1; i <= 1500; i++)
    { 
        string str1;
        ss << i;
        ss >> str1;
        str += str1;
        ss.clear();
    }
    int length = 4 * n - 4; 
    for (int i = 1; i <= n; i++)
    { 
        if (i != n && i != 1)
        { 
            for (int j = 1; j <= n + i - 1; j++)
            {
                if (j == n - i + 1)
                { 
                    cout << str[i - 1];
                }
                else if (j == 2 * n - (n - i + 1))
                {                                       
                    cout << str[4 * n - 4 + i] << endl; 
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else if (i == 1)
        {
            for (int x = 1; x <= n; x++)
            { 
                if (x == n)
                {
                    cout << '1' << endl;
                }
                else
                {
                    cout << '.';
                }
            }
        }
        else
        {
            for (int m = 1; m <= 2 * n - 1; m++)
            { 
                cout << str[n + (m - 2)];
            }
        }
    }
    return 0;
}
```
