#include<stdio.h>
int main(void) {
int length, temp;
while (~scanf("%d", &length)) {
if (length % 2)
temp = 1;
else
temp = 2;
for (int i = 0; i < length / 2; i++) {
for (int j = 1; j <= i; j++) {
printf(" ");
}
for (int k = length - 2 * i; k > 0; k --) {
if (k == length - 2 * i || k == 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
for (int i = 0; i < (temp == 1 ? length / 2 : length / 2 - 1); i++) {
printf(" ");
}
if (temp == 1) {
printf("*\n");
}
else {
printf("**\n");
}
for (int i = 0; i < (temp == 1 ? length / 2 : length / 2 - 1); i++) {
for (int j = length / 2 - temp - i; j > 0; j--) {
printf(" ");
}
for (int k = (temp == 1 ? 3 : 4) + 2 * i; k > 0; k--) {
if (k == (temp == 1 ? 3 : 4) + 2 * i || k == 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
}
return 0;
}
当时没想到可以拆分成两条线,只想到了上面是个三角形,下面也是个三角形,所以有了这些代码