编写程序,输入正整数n(n为奇数),打印由*组成且高为n的空心菱形。
时间: 2023-05-29 19:05:19 浏览: 55
n = int(input("请输入一个正整数n(n为奇数):"))
for i in range(n):
if i == 0 or i == n-1:
print(" "*(n-i-1) + "*")
else:
print(" "*(n-i-1) + "*" + " "*(2*i-1) + "*")
for i in range(n-2, -1, -1):
if i == 0 or i == n-1:
print(" "*(n-i-1) + "*")
else:
print(" "*(n-i-1) + "*" + " "*(2*i-1) + "*")
相关问题
Python编写程序,输入正整数n(n为奇数),打印由*组成且高为n的空心菱形
以下是Python程序的实现:
```
n = int(input("请输入一个奇数n:"))
for i in range(n):
if i == n // 2:
print("*" * n)
elif i < n // 2:
print(" " * (n // 2 - i) + "*" + " " * (2 * i - 1) + "*")
else:
print(" " * (i - n // 2) + "*" + " " * (2 * (n - i) - 3) + "*")
```
程序的主体部分是一个for循环,从0到n-1遍历每一行。在循环体中,首先判断当前行是否为菱形的中心行。如果是,就输出n个星号;否则,需要根据当前行的位置输出一些空格和星号。具体来说,当前行在上半部分(即在中心行的上面)时,需要在行首输出一些空格,然后输出一个星号,接着输出一些空格和一个星号;当前行在下半部分时,输出空格和星号的个数需要根据当前行的位置计算得出。最终输出的就是一个空心菱形。
编写程序,输入正整数n(n为奇数),打印由*组成且高为n的菱形
n = int(input("请输入一个正整数n(n为奇数):"))
for i in range(n):
if i <= n // 2:
print(" " * (n // 2 - i) + "*" * (2 * i + 1))
else:
print(" " * (i - n // 2) + "*" * (2 * (n - i - 1) + 1))