题目地址:
https://www.acwing.com/problem/content/729/
输入一个奇数
n
n
n,输出一个由*
构成的
n
n
n阶实心菱形。
输入格式:
一个奇数
n
n
n。
输出格式:
输出一个由*
构成的
n
n
n阶实心菱形。例如
n
=
5
n=5
n=5时,具体格式参照输出样例。
*
***
*****
***
*
数据范围:
1
≤
n
≤
99
1≤n≤99
1≤n≤99
代码如下:
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int cnt = 1;
for (int i = 0; i < n - 1 >> 1; i++) {
for (int j = 0; j < n - cnt >> 1; j++) printf(" ");
for (int j = 0; j < cnt; j++) printf("*");
for (int j = 0; j < n - cnt >> 1; j++) printf(" ");
cnt += 2;
puts("");
}
for (int i = 0; i < cnt; i++) printf("*");
puts("");
cnt -= 2;
for (int i = 0; i < n - 1 >> 1; i++) {
for (int j = 0; j < n - cnt >> 1; j++) printf(" ");
for (int j = 0; j < cnt; j++) printf("*");
for (int j = 0; j < n - cnt >> 1; j++) printf(" ");
cnt -= 2;
puts("");
}
return 0;
}
时间复杂度 O ( n 2 ) O(n^2) O(n2),空间 O ( 1 ) O(1) O(1)。