输入一个正整数n和一个数字字符c,输出2n-1行由数字字符c构成的沙漏图形
时间: 2024-06-01 17:09:41 浏览: 18
可以将沙漏看作由若干层组成,每层由一定数量的字符c构成。我们可以先计算出每层的字符数量,然后根据层数和字符数量逐层输出沙漏即可。
具体做法如下:
1. 根据输入的n计算出沙漏的总层数,设为total。
2. 设定一个变量count表示当前层应该输出的字符数量,初始化为1。
3. 从第total层开始循环到第1层:
- 输出该层前面的空格,数量为(total-当前层数)。
- 输出count个字符c。
- 输出该层后面的空格,数量同样为(total-当前层数)。
- 输出换行符。
- 如果当前层小于等于n,则count加2;否则count减2。
4. 输出完整个沙漏图形。
代码实现如下(使用Python语言):
n, c = input().split()
n = int(n)
total = 2 * n - 1 # 沙漏总层数
count = 1 # 当前层字符数量
for i in range(total, 0, -1): # 从第total层循环到第1层
if i <= n: # 前半部分层数
count += 2
else: # 后半部分层数
count -= 2
# 输出该层前面的空格
print(" " * (total - i), end="")
# 输出count个字符c
print(c * count)
# 输出该层后面的空格
print(" " * (total - i))
# 输出完整个沙漏
print(total - n)