输出字母沙漏

简介: 输出字母沙漏


题目描述

输入

输入一个正整数n

输出

按照样例输出。

样例输入

2

样例输出

ABCBA

BCB

C

BCB

ABCBA

样例输入2

3

样例输出2

ABCDCBA

BCDCB

CDC

D

CDC

BCDCB

ABCDCBA

做法1 —— 找规律

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    cin >> n;
    /* 以n=2为例 ABCBA共需要2*n+1=5个字节 */
    string s(2 * n + 1, ' ');
    /* 左右对称地进行赋值 */
    for (int i = 0; i <= n; ++i) s[i] = s[2 * n - i] = (char) ('A' + i);
    for (int i = 0; i <= n; ++i) {
        /* 第i行输出i个空格符 i的范围是从第0行到第n行 */
        for (int j = 0; j < i; ++j) cout << " ";
        /* 字母则从s串的第i个字符开始输出 直到第2*n-i个字符(对称位置) */
        for (int j = i; j <= 2 * n - i; ++j) cout << s[j];
        cout << endl;
    }
    for (int i = n - 1; i >= 0; --i) {
        for (int j = 0; j < i; ++j) cout << " ";
        for (int j = i; j <= 2 * n - i; ++j) cout << s[j];
        cout << endl;
    }
    return 0;
}
相关文章
|
1月前
判断输入的字母是元音,还是辅音
【10月更文挑战第15天】判断输入的字母是元音,还是辅音。
32 5
|
2月前
用*号输出字母C的图案
用*号输出字母C的图案。
52 16
|
6月前
|
C++
写一个函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空一个空格。如输入1990,输出1 9 9 0
这是一个C++代码片段,实现了一个函数`Print`,用于倒序打印整数。代码在`main`函数中读取用户输入的整数`n`,然后调用`Print`函数输出。示例运行结果显示了一张图片,显示了代码执行后的输出,但具体内容未提供。
81 0
|
6月前
|
C++
写一个函数,输入一个四位数字,要求输出这四位数字字符,但是每两个数字间空一个字符,如输入1990,输出1 9 9 0
这是一个C++代码段,用于打印整数的逆序。程序从用户输入接收一个整数,然后通过递归方法将其逆序输出。示例结果展示了一张图片,但因摘要限制无法显示。代码功能是将数字如12345逆序输出为54321。
51 0
|
5月前
1027 打印沙漏
1027 打印沙漏
|
6月前
输入一个字符,判断该字符是大写字母、小写字母,数字还是其他字符,并作相应的显示。
输入一个字符,判断该字符是大写字母、小写字母,数字还是其他字符,并作相应的显示。 提示:利用ord()函数来获得字符的 ASCIl。
163 1
输入一个字符,判断该字符是大写字母、小写字母,数字还是其他字符,并作相应的显示。
|
6月前
53.从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变。如输入“a123BxC”,则输出“A123bXc”
53.从键盘输入任意一串字符串,程序输出同样的一串字符,要求输出字符串中大小写相互转化,其他符号不变。如输入“a123BxC”,则输出“A123bXc”
50 0
|
6月前
25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值
25.输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值
52 0
|
6月前
L1-002 打印沙漏
L1-002 打印沙漏
44 0
|
6月前
|
机器学习/深度学习 C语言 C++
『C/C++』Eg5: 打印沙漏
『C/C++』Eg5: 打印沙漏