测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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。输出每行字符串。

上一题 下一题