题解 | #圣诞树#

圣诞树

http://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2

#include<stdio.h>

int main() {
    /*解析:
    可把每个圣诞树看成是由多个
    *
   * *
  * * *
  的圣诞树 ,观察这个三角形多个合成时,发现第一行由一个*和五个空格组成
  第二行由* *与三个空格组合隔开为圣诞树的左半树
  第三行由* * * 组成,每颗*之间一个空格,循环控制打印圣诞树
  最后的树柄数量等于a,树柄的前面空格规律是3*a-1用内循环控制,外循环控制打印*作为树柄
  */
    int a, i, j;
    scanf("%d", &a);
    int d = 3 * a;     //d为开始的前面的空格数
    for (i = 0 ; i < a; i++) {
        for (j = d - 1; j > 0; j--)
            printf(" ");
        for (j = 0; j < i + 1; j++)
            printf("*     ");//5个空格
        printf("\n");            //打印第一行
        for (j = d - 2; j > 0; j--)
            printf(" ");
        for (j = 0; j < i + 1; j++)
            printf("* *   "); //* *和三个空格组成控制
        printf("\n");            //打印第二行
        for (j = d - 3; j > 0; j--)
            printf(" ");
        for (j = 0; j < i + 1; j++)
            printf("* * * ");
        printf("\n");            //打印第三行
        d -= 3;
    }
    for (i = 0; i < a; i++) {
        for (j = 0; j < 3 * a - 1; j++)
            printf(" ");
        printf("*\n");
    }
    return 0;
}
双循环打印图像 文章被收录于专栏

多层循环打印图像

全部评论
/*解析: 可把每个圣诞树看成是由多个 * * * * * * 的圣诞树 ,观察这个三角形多个合成时,发现第一行由一个*和五个空格组成 第二行由* *与三个空格组合隔开为圣诞树的左半树 第三行由* * * 组成,每颗*之间一个空格,循环控制打印圣诞树 最后的树柄数量等于a,树柄的前面空格规律是3*a-1用内循环控制,外循环控制打印*作为树柄 */ 点个小星星吧~
4 回复 分享
发布于 2022-06-05 15:25

相关推荐

03-24 16:56
已编辑
肇庆学院 后端
一天代码十万三:你看看人家进大厂的简历就知道了,你这个学历得acm+大厂实习+熟悉底层+运气很好 才有可能进某个大厂,因为大部分是直接卡学历的
投递快手等公司8个岗位
点赞 评论 收藏
分享
网安已死趁早转行:山东这地方有点说法
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
16
4
分享

创作者周榜

更多
牛客网
牛客企业服务