输入一个奇数和一个字符n行字符打印菱形
时间: 2024-05-05 08:20:08 浏览: 98
c代码-输入一个大写字母打印菱形。菱形中间一行由该字母组成,相邻的各行由前面的字母依次组成,直到字母A出现在第一行和最末行为止。例如输入字母D,输出图形如下
好的,我来为您解答这个问题。
首先,我们可以将要打印的菱形分成两个部分:上半部分和下半部分。而每个部分都是由若干行数字和字符组成的。
接下来,我们可以分别计算出每个部分的行数,然后在循环中打印出相应的数字和字符即可。
以下是实现过程:
```python
# 获取用户输入的奇数和字符
n, c = input("请输入一个奇数和一个字符,中间用空格隔开:").split()
n = int(n)
# 计算上半部分的行数,即前 (n+1)/2 行
for i in range(1, (n+1)//2+1):
# 计算每行数字和字符的数量
num_count = n - 2 * i + 1
char_count = i * 2 - 1
# 打印空格和数字
print(' ' * ((n-num_count)//2), end='')
for j in range(num_count):
print(j+1, end='')
# 打印字符
if j == num_count // 2:
print(c * char_count, end='')
print()
# 计算下半部分的行数,即后 (n-1)/2 行
for i in range(1, (n-1)//2+1):
# 计算每行数字和字符的数量
num_count = i * 2 + 1
char_count = n - 2 * i
# 打印空格和数字
print(' ' * ((n-num_count)//2), end='')
for j in range(num_count):
print(j+1, end='')
# 打印字符
if j == num_count // 2:
print(c * char_count, end='')
print()
```
对于输入为 "5 *" 的情况,输出结果为:
```
1 *
123 ***
5 *
```
阅读全文