输入一个数字,判断是不是大于1的奇数,打印中间为空白菱形,四周为倒三角形,输入3、5、7、9
时间: 2025-06-25 16:26:01 浏览: 19
### 绘制基于奇数输入的空白菱形与倒三角形组合图形
要实现一个程序来根据用户输入的大于1的奇数打印空白菱形和倒三角形图案,可以采用多种编程语言完成此任务。以下是使用Python作为示例的语言之一。
#### 菱形部分
对于给定的一个大于1的奇数`n`,可以通过计算每一行的空格数量以及星号的数量来构建菱形形状。上半部分从一行到中间逐渐增加星号数目,下半部分则减少星号数目直到回到单行状态。
#### 倒三角形部分
接着,在菱形之后紧接着绘制倒三角形。同样依据输入数值调整每层显示宽度,逐步递减直至顶部只剩下一个字符为止。
下面是具体的Python代码实现:
```python
def draw_pattern(n):
if n % 2 == 0 or n <= 1:
print("请输入一个大于1的奇数")
return
# Drawing the diamond shape
for i in range(1, (n//2)+2):
spaces = ' ' * ((n//2)-i+1)
stars = '*' * (2*i -1 )
line = spaces + stars
print(line)
for i in reversed(range(1, (n//2)+1)):
spaces = ' ' * ((n//2)-i+1)
stars = '*' * (2*i -1 )
line = spaces + stars
print(line)
# Drawing inverted triangle below it.
height_of_triangle = int((n / 2))
width_of_base = n
for row in range(height_of_triangle):
num_stars = width_of_base - (row*2)
padding_spaces = (' '*row)
star_sequence =('*'*num_stars)
full_line=padding_spaces+star_sequence
print(full_line)
# Example usage with input values provided by user such as 3,5 etc., can be called like this:
draw_pattern(int(input('Enter an odd integer greater than one:')))
```
上述代码定义了一个函数 `draw_pattern()` 来接收参数并执行相应的绘图操作[^4]。该函数首先验证输入是否符合条件;随后分别处理菱形上下两部分及后续的倒置三角形结构生成逻辑[^5]。
#### 关于时间复杂度与空间复杂度分析
本解决方案的时间复杂度主要取决于循环次数,即O(N),其中N代表输入值的一半加一(用于形成完整的菱形)。而由于仅需少量额外变量保存当前状态信息,因此其空间复杂度接近常量级别 O(1)[^6]。
阅读全文