题解 | #菱形图案#
菱形图案
http://www.nowcoder.com/practice/8b935f8ffe99445dbd42494febd13e45
#include<stdio.h>
void output(int a, int b) { //图案输出
for (int j = a; j > 0 ; j--) {
printf(" ");
}
for (int k = b; k > 0 ; k--) {
printf("* ");
}
printf("\n");
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int m = 2 * n + 1;
int a = 1, b = n;
for (int i = m; i > 0; i--) {
if (i >= n + 1) //定义中线n+1
output(i % (n + 1), (n + 1) - i % (n + 1)); //输出中线上图案包括中线
else
output(a++, b--); //输出中线下方图案不包括中线
}
}
return 0;
}
void output(int a, int b) { //图案输出
for (int j = a; j > 0 ; j--) {
printf(" ");
}
for (int k = b; k > 0 ; k--) {
printf("* ");
}
printf("\n");
}
int main() {
int n;
while (scanf("%d", &n) != EOF) {
int m = 2 * n + 1;
int a = 1, b = n;
for (int i = m; i > 0; i--) {
if (i >= n + 1) //定义中线n+1
output(i % (n + 1), (n + 1) - i % (n + 1)); //输出中线上图案包括中线
else
output(a++, b--); //输出中线下方图案不包括中线
}
}
return 0;
}