牛客网刷题 | BC114 圣诞树 (不理解)

目前主要分为三个专栏,后续还会添加:

        专栏如下:                 C语言刷题解析       C语言系列文章       我的成长经历

感谢阅读!

初来乍到,如有错误请指出,感谢!


这道题没搞懂 也没找到视频

水了篇文章

大家有思路可以放到评论区

或者有视频也行

放个链接给我 我去学一学

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

//思路:我们可以观察到树叶部分是由一些相同的三角形构成的,
//树的底部就是处于中间的所输入n层的n个*,所以大体上我们就可以分为2部分来打印

int main()
{
    //一、先打印上面“树叶”部分
    int n = 0;    //层数
    scanf("%d", &n);
    int i = 0;    //循环控制层数
    int m = 3 * n;  
    //用于控制打印空格,不直接用3*n,
    //而是重新定义一个变量,是因为在打印过程中每一层要打印的空格不同,我们需要对m进行变化
    for (i = 1; i <= n; i++)
    {
        //打印第i层的第一行
        int space = m - 1;    //三角形前面的空格
        while (space--)
        {
            printf(" ");
        }

        int k = 0;    //因为打印过程中相邻三角形会出现"*     "
        for (k = 0; k < i; k++)
        {
            printf("*     ");   //打印每层三角形的第一行
        }
        printf("\n");

        //打印第i层的第二行
        int space2 = m - 2;        //空格少1
        while (space2--)
        {
            printf(" ");
        }
        for (k = 0; k < i; k++)
        {
            printf("* *   ");   //到了第二行相邻三角形间变为了"* *   "
        }
        printf("\n");

        //打印第i层的第三行
        int space3 = m - 3;         //空格少1
        while (space3--)
        {
            printf(" ");
        }
        for (k = 0; k < i; k++)
        {
            printf("* * * ");   //第三行变成了"* * * "
        }
        printf("\n");

        m = m - 3;  //每层少打3个空格

    }

    //二、底部
    int bottom = 0;
    for (bottom = 0; bottom < n; bottom++)
    {
        int j = 0;
        for (j = 0; j < 3 * n - 1; j++)
        {
            printf(" ");
        }
        printf("*\n");
    }

    return 0;
}

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/673299.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

软件定义汽车,通信连接世界 | 2024汽车软件与通信大会开幕

5月28日-30日&#xff0c;在江苏省工业和信息化厅、智能汽车安全技术全国重点实验室指导下&#xff0c;由中国中检所属中国汽车工程研究院股份有限公司&#xff08;下称&#xff1a;中国汽研&#xff09;主办&#xff0c;中汽院(江苏)汽车工程研究院有限公司承办的2024汽车软件…

RTOS(ENV)串口DMA接收GPS数据并解析

RTOS&#xff08;ENV&#xff09;配置STM32串口DMA接收模式 环境&#xff1a; RTOS 4.0.3Keil5ENVSTm32l475 ENV配置 使能串口&#xff1a; 2. 使能DMA&#xff0c;并设置接收缓冲区大小&#xff1a; 创建工程 scons --targetmdk工程配置 1. 创建串口设备句柄 #define SA…

从零开始实现一个可靠、健壮的内存池

文章目录 概要 这个项目是干什么的项目所需储备知识什么是内存池 池化技术内存池内存池主要解决的问题框架设计开发计划系统测试情况遇到的主要问题和解决方法分工和协作提交仓库目录和文件描述比赛收获 概要 这个项目是干什么的 当前项目是实现一个高并发的内存池&#xff0c…

养生与健康|一起跟随林曦老师养个元气满满

暄桐是一间传统美学教育教室&#xff0c;创办于2011年&#xff0c;林曦是创办人和授课老师&#xff0c;教授以书法为主的传统文化和技艺&#xff0c;皆在以书法为起点&#xff0c;亲近中国传统之美&#xff0c;以实践和所得&#xff0c;滋养当下生活。    在暄桐教室的六阶…

QT 使用信号和槽,让QLabel的内容实时与QLineEdit同步,类似vue框架的双向绑定

在窗口里放置一个单行文本编辑器&#xff08;QLineEdit&#xff09;和一个标签控件&#xff08;QLabel&#xff09;&#xff0c;实现的效果就是当编辑器的内容被编辑时&#xff0c;标 签控件同步显 示编辑控件里的内容 1&#xff09;当 lineEdit 控件被用户编辑时&#xff0c;它…

边缘密度分布图 | ggExtra包/aplot拼图/ggpubr包 等的实现方法

概述&#xff1a;aplot 拼图效果好 根据网友探索[1]&#xff0c;总结如下&#xff1a; ggExtra 包的拼图间隙有点大&#xff0c;图例在主图和边缘图之间&#xff0c;除非去掉图例&#xff0c;否则没法看。aplot包的默认拼图间隙很小&#xff0c;比较美观&#xff0c;图例在外…

Java——二进制原码、反码和补码

一、简要介绍 原码、反码和补码只是三种二进制不同的表示形式&#xff0c;每个二进制数都有这三个形式。 1、原码 原码是将一个数的符号位和数值位分别表示的方法。 最高位为符号位&#xff0c;0表示正&#xff0c;1表示负&#xff0c;其余位表示数值的绝对值。 例如&…

生成式AI,在云端的绽放与盛开

编辑&#xff1a;阿冒 设计&#xff1a;沐由 毫无疑问&#xff0c;生成式AI已然成为当今技术发展和应用创新的重要引擎之一。 过去的一年多时间里&#xff0c;我们每个人都在目睹和见证着生成式AI是如何以移山倒海的力量&#xff0c;为诸多行业带来革命性乃至颠覆性的变革&…

FS118M 单A口QC协议芯片

FS118M是一个QC快充协议芯片&#xff0c;FS118M可以识别插入的手机类型&#xff0c;选择最为合适的协议应对手机需要。USB Type-A 口的 D连接到FS118M芯片&#xff0c;当手机插入到 USB Type-A 口后&#xff0c;根据各个协议的约定&#xff0c;手机和FS118M之间将开始互相识别&…

计网ppt标黄知识点整理第(2)章节——谢希仁版本、期末复习自用

物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流&#xff0c;而不是指具体的传输媒体。4 个特性&#xff1a; 机械特性&#xff1a;指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。 电气特性&#xff1a;指明在接口电缆的各条线上出现…

C/C++开发,2024.x CLion安装,亲测有效

CLion 是一款专为 C 和 C 开发者设计的跨平台集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了智能代码补全、代码分析、调试和 Git 集成等功能&#xff0c;以提高开发效率和代码质量。 1.下载安装c/c开发工具 CLion 先去官网下载&#xff0c;我这里下载的是最新版…

【docker】docker的安装

如果之前安装了旧版本的docker我们需要进行卸载&#xff1a; 卸载之前的旧版本 卸载 # 卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 卸载历史版本 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker…

问答机器人

怎样做自己的问答机器人&#xff1f; 根据我们提供的数据分析出问题的答案&#xff0c;我们并不需要训练自己的模型 微调模型 finetune&#xff0c;将语言模型调成另外的语言模型&#xff0c;更适合不同类型数据&#xff0c;运用finetune方法将模型变化 知识库模型 embedd…

word避免画质画质模糊方法

问题描述&#xff1a;   近期写文档时会高频率贴图&#xff0c;粘图过程中发现Word会自动压缩图片画质&#xff0c;而且压缩得很严重&#xff0c;下面是一幅图被压缩前后的画质对比 &#xff08;图片压缩前&#xff09; &#xff08;图片压缩后&#xff09; 解决方案&#x…

修改文档日期神器 - Python打造日期修改器

这篇文章将介绍一款使用 Python 开发的实用工具 - 日期修改器。它可以帮助您轻松修改 Word (.docx) 和 PDF 文档的日期信息&#xff0c;满足日常办公和文档整理的需求。 C:\pythoncode\new\modifyfiledate.py 软件功能 支持修改 Word (.docx) 日期信息。允许选择要修改的日期…

leetcode146.LRU缓存,从算法题引入,全面学习LRU和链表哈希表知识

leetcode146. LRU 缓存 题目链接 请你设计并实现一个满足 LRU (最近最少使用) 缓存约束的数据结构。 实现 LRUCache 类&#xff1a; LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中&#xff0c;则返回关…

三种字符串的管理方式

NSString的三种实现方式 OC这个语言在不停的升级自己的内存管理&#xff0c;尽量的让自己的 OC的字符串 问题引入 在学习字符串的过程中间会遇到一个因为OC语言更新造成的问题 例如&#xff1a; int main(int argc, const char * argv[]) {autoreleasepool {NSString* str1 …

ZCU102启动镜像(详细版)

ZCU102启动镜像--详细版本 详细步骤1、安装好Vitis&#xff08;GUI界面&#xff09;、 Vivado、 Petalinux软件然后vivado这边的操作就先结束了 创建Petalinux工程编译镜像打包 详细步骤 B站参考视频链接: link 1、安装好Vitis&#xff08;GUI界面&#xff09;、 Vivado、 Pe…

SpringBoot:手动创建应用

Spring提供了在线的Spring Initialzr在线创建Spring Boot项目&#xff0c;为了更好的理解Spring Boot项目&#xff0c;这里我们选择手动创建。 1.新建Web应用 1.1 生成工程 首先要做是创建一个Java项目&#xff0c;这里我们选择使用Maven来支持&#xff0c;使用archetype:ge…

C++进阶之AVL树+模拟实现

目录 目录 一、AVL树的基本概念 1.1 基本概念 二、AVL树的模拟实现 2.1 AVL树节点的定义 2.2 插入操作 2.3 旋转操作 2.4 具体实现 一、AVL树的基本概念 1.1 基本概念 二叉搜索树虽可以缩短查找的效率&#xff0c;但如果数据有序或接近有序二叉搜索树将退化为单支树&…