要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。 输入格式: 输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。 输出格式: 首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。
时间: 2023-07-23 08:41:10 浏览: 122
python实现*的形状(沙漏*)
5星 · 资源好评率100%
好的,下面是Python的实现代码:
```python
n, c = input().split()
n = int(n)
# 计算组成沙漏的符号数
i = 1
while (2 * i + 1) ** 2 - 1 <= n:
i += 1
i -= 1
# 输出沙漏形状
for j in range(2 * i + 1, 0, -2):
print(' ' * ((2 * i + 1 - j) // 2) + c * j)
for j in range(3, 2 * i + 2, 2):
print(' ' * ((2 * i + 1 - j) // 2) + c * j)
# 计算剩余未使用的符号数
unused = n - (2 * i + 1) ** 2 + 1
print(unused)
```
这里首先计算出能组成的最大沙漏层数 $i$,然后从最大层开始按要求输出沙漏形状,最后计算剩余未使用的符号数并输出即可。
阅读全文