圣诞树的打印

简介: 圣诞树的打印

题目:


输入描述:输入圣诞树的高度h,1<= h <= 1001<=h<=100

输出描述:输出对应的圣诞树:


输入:1                                   输入:2                                             输入:3


输出:                                      输出:                                              输出:


4a7e4f2fbad2458d89e1eeecbabd3486.png7f48b619b8ef4289a0e7d7f06991cf77.png04fe687a0ee246509546f40448a227c0.png


对比三个图,可以发现高度1有1个,高度2有2个,高度3有3个,我们以一个三角形为单位,可以发现:


       当输入2时,因为三角形有3个,所以高度1前都有3个空格;


       输入为3时,高度为1时,有6个空格;高度为2时,则3个空格;高度为3时,空格为0;  


结论,一共有多少个三角形,第一行前面就有多少个空格(不包括1),随着深度的相加对应减少三个空格。


5bcea4ce25234474bfef4b4c90c27c65.png

每一次打印一个红框内的内容(包括空格):空格 空格 *空格 空格 空格                                                                                                          空格  *  空格  * 空格 空格                                                                                                              *  空格 * 空格 *   空格


代码如下:

#include<stdio.h>
int main(){
    int n, l, p = 0;
    scanf("%d", &n);
    for(int i = 0; i < 3 * n; i++){
        l = i / 3 + 1; //当前所在层,三行一层,在第几层就打印几个三角;
        for(int j = 0; j < n - l; j++){ //空格数 = 层数 * 3
            printf("   ");
        }
        for(int k = 0; k < l; k++){
            p = i % 3; //在三角形的第几行
            if(!p)
                printf("  *   ");
            else if (p == 1)
                printf(" * *  ");
            else
                printf("* * * ");
        }
        printf("\n");
    }
    for(int i = 0; i < n; i++){
        for(int j = 0; j < 3 * n; j++){
            if(j == 3 * n - 1)
                printf("*\n");
            else
                printf(" ");
        }
    }
    return 0;
}


目录
相关文章
|
SQL 安全 测试技术
安全测试----使用Docker搭建SQL注入安全测试平台sqli-labs
安全测试----使用Docker搭建SQL注入安全测试平台sqli-labs
1017 0
安全测试----使用Docker搭建SQL注入安全测试平台sqli-labs
|
7月前
|
JavaScript 算法 前端开发
JS数组操作方法全景图,全网最全构建完整知识网络!js数组操作方法全集(实现筛选转换、随机排序洗牌算法、复杂数据处理统计等情景详解,附大量源码和易错点解析)
这些方法提供了对数组的全面操作,包括搜索、遍历、转换和聚合等。通过分为原地操作方法、非原地操作方法和其他方法便于您理解和记忆,并熟悉他们各自的使用方法与使用范围。详细的案例与进阶使用,方便您理解数组操作的底层原理。链式调用的几个案例,让您玩转数组操作。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
扫描工具 -- Nuclei
扫描工具 -- Nuclei
1466 0
扫描工具 -- Nuclei
|
8月前
|
存储 人工智能 API
ChatGPT-on-WeChat:Star32.4k, DeepSeek加持!这款开源神器秒变AI助手,聊天体验直接起飞!
嗨,大家好,我是小华同学。今天为大家介绍一款结合DeepSeek引擎的开源项目——ChatGPT-on-WeChat,由开发者zhayujie打造。它将微信变成智能AI助手,支持文本、图片、语音对话,具备定时提醒、天气查询等扩展功能,完全开源且易于定制。项目地址:https://github.com/zhayujie/chatgpt-on-wechat。关注我们,获取更多优质开源项目和高效学习方法。
731 11
|
开发框架 前端开发 JavaScript
【Vue 3】一款开箱即用的中后台前端开发框架,开源且免费!!
【Vue 3】一款开箱即用的中后台前端开发框架,开源且免费!!
1870 120
|
12月前
|
存储 安全 算法
MiniOS 3.3.4 发布,新功能有这些!
【10月更文挑战第19天】
389 0
MiniOS 3.3.4 发布,新功能有这些!
|
物联网 vr&ar Android开发
掌握安卓与iOS应用开发:核心技术与未来趋势
本文深入探讨了安卓和iOS应用开发的核心技术,包括开发环境、主要编程语言、常用框架以及性能优化技巧。同时,文章还展望了两大平台未来的发展趋势,如人工智能、增强现实和物联网的集成,为开发者提供全面的技术参考和发展指引。
|
消息中间件 存储 Kafka
Kafka 与 SQS:事件流工具深入比较
【8月更文挑战第13天】
442 0
|
分布式计算 Unix MaxCompute
在MaxCompute中,时间的计算是基于秒的
在MaxCompute中,时间的计算是基于秒的
244 1
|
存储 安全 测试技术
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
网络奇谭:虚拟机中的共享、桥接与Host-Only模式解析
275 0