题解 | #圣诞树#
圣诞树
https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2
#include <stdio.h>
//考虑圣诞树中出现元素的种类
// *_____ 小树第一层 * + 五个空格
// *_*___ 小树第二层 * + 空格 + * + 两个空格
// *_*_*_ 小数第三层 * + 空格 + * + 空格 + * + 空格
// ________* 大树树干 3n-1个空格 + *
int main() {
int n;
while (scanf("%d", &n) != EOF) {
for (int i = 0; i < 3 * n; ++i) {
// 输出空格部分
for (int j = 0; j < 3 * n - i - 1; ++j) {
printf(" ");
}
// 输出小树第一层
if ( i % 3 == 0 ) {
for (int k = 0; k <= i / 3; ++k)
printf("* ");
}
// 输出小树第二层
else if ( (i - 1) % 3 == 0 ) {
for (int k = 0; k <= (i - 1) / 3; ++k)
printf("* * ");
}
//输出小树第三层
else if ( (i - 2) % 3 == 0) {
for (int k = 0; k <= (i - 2) / 3; ++k)
printf("* * * ");
}
printf("\n");
}
// 输出树干部分
for (int i = 0; i < n; ++i) {
for (int j = 0; j < 3 * n - 1; ++j) {
printf(" ");
}
printf("*\n");
}
}
return 0;
}
查看14道真题和解析
