A17105. 苗族织锦纹样生成
填空题
中等
知识点
题目描述
苗族织锦纹样生成
题目描述
苗族织锦常以菱形纹样重复排列,形成对称美感。现给定织锦边长n(奇数),请编程输出n行n列的菱形图案,用*表示纹样,空格为背景。
输入格式输入一个奇数n(3≤n≤9)。
输出格式输出n行n列的菱形图案。
参考答案
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int mid = n / 2;
for(int i=0; i<n; i++){
int space = abs(mid - i);
int star = n - 2 * space;
for(int j=0; j<space; j++) cout << " ";
for(int j=0; j<star; j++) cout << "*";
for(int j=0; j<space; j++) cout << " ";
cout << endl;
}
return 0;
}答案解析
确定菱形中心行位置为n//2(整数除法)。逐行遍历0到n-1,计算每行与中心行的距离。根据距离确定当前行*字符的数量和起始位置。距离越小,*越多;距离越大,*越少。每行的*数量为n减去2倍行距。*在行中居中排列,左右补空格至总长度n。输出每行字符串。
上一题
下一题