题目描述 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的菱形图案。 输入 多组输入,一个整数(2~20)。 输出 针对每行输入,输出用“*”组成的菱形,每个“*”后面有一个空格。每输出一个菱形的后面需要空一行。 样例输入 Copy 2 3 4 样例输出 Copy * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
时间: 2023-07-06 10:36:18 浏览: 183
以下是Python的代码实现:
```python
while True:
try:
n = int(input())
for i in range(1, n+1):
print(" "*(n-i) + "* "*i)
for i in range(n-1, 0, -1):
print(" "*(n-i) + "* "*i)
print()
except:
break
```
首先,我们使用`while`循环和`try-except`语句来不断读入输入,并在遇到输入结束时退出循环。
对于每组输入,我们使用两个`for`循环分别输出上半部分和下半部分的菱形图案。在每个循环中,我们使用`range`函数生成菱形的行数,并在每一行中输出对应数量的空格和星号,其中星号和空格之间需要加上一个空格。在输出完一组菱形后,我们在最后输出一个空行,以区分不同的测试用例。
相关问题
链接:https://ac.nowcoder.com/acm/contest/67628/1011 来源:牛客网 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的金字塔图案。(用c++打出)
以下是用C++打印金字塔图案的代码:
```
#include <iostream>
using namespace std;
int main() {
int n;
cout << "请输入金字塔的层数:";
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n - i; j++) {
cout << " ";
}
for (int k = 1; k <= 2 * i - 1; k++) {
cout << "*";
}
cout << endl;
}
return 0;
}
```
链接:https://ac.nowcoder.com/acm/contest/67628/1005 来源:牛客网 KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。(用c++打出
以下是用C++打印正斜线形图案的代码:
```
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= i - 1; j++) {
cout << " ";
}
cout << "*" << endl;
}
return 0;
}
```