“圣诞树图案的打印~C语言”

圣诞树图案的打印~C语言

  • 题目原文:[圣诞树](https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2?tpId=107&rp=1&ru=/ta/beginner-programmers&qru=/ta/beginner-programmers/question-ranking&difficulty=&judgeStatus=&tags=&title=&sourceUrl=&gioEnter=menu)
  • 题目分析
    • 树枝第一步,打印空格。
    • 树枝打印第二步:打印图案
    • 打印树干第一步,打印空格
    • 打印树干第二步,打印图案
  • 完整代码

题目原文:圣诞树

在这里插入图片描述

题目分析

首先我们把树分为上下两部,树干和树枝。仔细观察树枝我们发现,不管层级n是多少的圣诞树,它们的树枝都是由类似于小金字塔构成的。
例如:层数n == 1,树枝部分有1层,第一场是1个金字塔图案。
n == 2,树枝部分有2层,第一层有1个金字塔,第2层有2个金字塔。
n == 3,树枝部分有3层,第一层有1个,第二层有2个,第三层有3个…
树枝的部分,可以用循环来实现。

树枝第一步,打印空格。

在这里插入图片描述

n == 1,打印空白个数d == 2 , 1 , 0
n == 2,d == 2+3, 4 , 3 , 2 , 1 , 0
n == 3,d==2+3+3, 7 , 6 , … 3 , 2 , 1 ,0
规律:d == 3 * n - 1;
即每一层金字塔空白字符的打印都比上一次多3个 。

树枝打印第二步:打印图案

以n == 2为例:

打印第1层金字塔

		int d = 3 * n;for (int a = d -1;a>0;a--)//{printf(" ");}for (int k = 1; k <= i; k++)//k代表一行打印多少个“*     ”,i其实表示层数{printf("*     ");//把第一层当作“*     ”来打印,原因是n>1时(举例n==2),第二层//有2个金字塔,它们之间有5个空格。}printf("\n");for (int a = d - 2; a > 0; a--)//同上{printf(" ");}for (int k = 1; k <= i; k++){printf("* *   ");}printf("\n");for (int a = d-3; a > 0; a--)//同上{printf(" ");}for (int k = 1; k <= i; k++){printf("* * * ");}printf("\n");

接下来打印第2层,它开头的空格比上一次少3个:即d -= 3;
第2层打印2个金字塔图案,金字塔图案 k和层数 i 成正比例关系。所以用循环来表示。

int main()
{int n = 0;//层数scanf("%d", &n);int d = 3 * n;//a和d用于控制最开始的空白数;for (int i = 1; i <= n; i++)//树枝层数{for (int a = d -1;a>0;a--)//{printf(" ");}for (int k = 1; k <= i; k++){printf("*     ");}printf("\n");for (int a = d - 2; a > 0; a--)//同上{printf(" ");}for (int k = 1; k <= i; k++){printf("* *   ");}printf("\n");for (int a = d-3; a > 0; a--)//同上{printf(" ");}for (int k = 1; k <= i; k++){printf("* * * ");}printf("\n");d = d - 3;}
}

打印树干第一步,打印空格

层数n == 1,打印空格 d == 2;
n == 2,d == 2 + 3;
n == 3,d == 2 + 3 + 3;
规律 : d == 3 * n - 1;

for (int i = 1; i <= 3 * n - 1; i++){printf(" ");}

打印树干第二步,打印图案

层数 n == 1;打印1行,每行1个
n == 2,打印2行,每行1个
n == 3,打印3行,每行1个

int c = 1;
while (c<=n){for (int i = 1; i <= 3 * n - 1; i++){printf(" ");}printf("*\n");c++;}

完整代码

int main()
{int c = 1;int n = 0;scanf("%d", &n);int d = 3 * n;for (int i = 1; i <= n; i++){for (int a = d -1;a>0;a--){printf(" ");}for (int k = 1; k <= i; k++){printf("*     ");}printf("\n");for (int a = d - 2; a > 0; a--){printf(" ");}for (int k = 1; k <= i; k++){printf("* *   ");}printf("\n");for (int a = d-3; a > 0; a--){printf(" ");}for (int k = 1; k <= i; k++){printf("* * * ");}printf("\n");d = d - 3;}while (c<=n){for (int i = 1; i <= 3 * n - 1; i++){printf(" ");}printf("*\n");c++;}return 0;
}

如有不足,请大佬们指正。。。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT行业现状洞察与未来趋势展望

随着科技的快速发展&#xff0c;IT行业已经深入到社会的各个角落&#xff0c;极大地改变了我们的工作和生活方式。本文将对IT行业的现状进行深入分析&#xff0c;并展望其未来的发展趋势。 一、IT行业现状 技术创新加速&#xff1a;云计算、大数据、人工智能、物联网、区块链…

牛客华为机试题——难度:入门(python实现)

HJ7 取近似值 HJ9 提取不重复的整数 HJ46 截取字符串 HJ58 输入n个整数&#xff0c;输出其中最小的k个 HJ101 输入整型数组和排序标识&#xff0c;对其元素按照升序或降序进行排序 HJ7 取近似值 描述&#xff1a;写出一个程序&#xff0c;接受一个正浮点数值&#xff0c;输…

分布式与一致性协议之常见疑惑(一)

常见疑惑 什么是线性一致性 线性一致性(Linearizability),也称为原子性或强一致性&#xff0c;是分布式系统中的一个一致性模型&#xff0c;它定义了系统对读写操作的行为&#xff0c;以确保系统表现得好像只有一个数据副本&#xff0c;并且所有操作都是原子的。 在线性一致性…

数据赋能(87)——数据要素:管理原则与原理

数据要素管理应遵循以下原则&#xff1a; 安全性原则&#xff1a;确保数据的安全性和隐私保护&#xff0c;防止数据泄露和滥用。准确性原则&#xff1a;保证数据的准确性和完整性&#xff0c;避免数据错误和误导。合规性原则&#xff1a;遵守相关法律法规和行业标准&#xff0…

运维安全管理系统:“四集中”管理 解决迫切问题

日前&#xff0c;国内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数据安全产品解决方案与相关技术研究开发的领军企业——国联易安依托自身强大的研发能力&#xff0c;丰富的行业经验&#xff0c;自主研发了新一代软硬件一体化统一安全运维平台——国联易安…

【单片机调试】mcu调试bug记录

【单片机调试】mcu调试bug记录 2023.5-2023.11待输入 2023.12-2023.22024.3-至今1.spi通信问题 2023.5-2023.11 待输入 2023.12-2023.2 辞职阶段&#xff1a;【STM32调试】寄存器调试不良问题记录持续版 2024.3-至今 1.spi通信问题 现象说明&#xff1a; mcu与afe芯片为spi通…

JAVA智慧工地管理系统源码,智慧工地扬如何实现对工地扬尘的实时监测

智慧工地扬尘监测系统概述 智慧工地扬尘监测系统是一种利用现代信息技术&#xff0c;如光电传感技术和无线传输技术&#xff0c;对工地扬尘污染进行实时监测和管理的高效工具。该系统的目的是为了保护环境&#xff0c;减少因建筑施工产生的扬尘对周边地区的影响&#xff0c;同…

灵卡 LCC262 高性能多功能数字视频和音频一体式采集卡详尽解读

一、前言 作为计算机视觉技术解决方案提供商——灵卡&#xff08;LingCard&#xff09;公司推出的新一代超群性能采集卡—— LCC262&#xff0c;以其卓越的性能表现和丰富多样的功能特性&#xff0c;为广大用户带来了前所未有的视频和音频处理体验。本文旨在对该产品进行详细解…

python从零开始学习深度学习01——神经网络反向传播的链式求导

自我介绍 最懂保险的算法工程师&#xff0c;致力于保险理念的推广&#xff0c;让每个程序员在35岁时都能够免除后顾之忧。通过构建保险组合&#xff0c;避免中年因病致穷&#xff0c;苦攒多年积蓄全部花费在医疗上&#xff0c;因此返贫。有兴趣的朋友后台私信加V&#xff1a;A…

python内置类bytearray()详解

bytearray 是 Python 的一个内置类&#xff0c;它提供了一个可变序列的字节数组。 bytearray 数组的元素必须是0-255之间的整数&#xff0c;这些整数对应于ASCII字符集中的数字。下面着张图是部分ASCII字符&#xff1a; bytearray 是可变的&#xff0c;可修改其内容&#xff0c…

数据结构与算法学习笔记六---栈的顺序表示和实现(C语言)

目录 前言 一、什么是顺序栈 二、顺序栈的表示和实现 1.初始化 2.销毁 3.清空 4.栈空 5.栈长度 6.栈顶元素 7.入栈 8.出栈 8.遍历栈 9.测试代码 前言 这篇文章主要讲栈的顺序表示和实现。 一、什么是顺序栈 顺序栈,即栈的顺序存储结构是利用一组地址连续的存储单…

CPU的的处理流程如何快速记忆

为了快速记忆CPU的处理流程&#xff0c;可以将其简化成五个主要阶段&#xff0c;通常称为“冯诺依曼架构”的五个基本步骤&#xff0c;或者是流水线处理的几个阶段。下面是一种便于记忆的简化版本&#xff1a; CPU处理流程的五个阶段&#xff1a; 取指令&#xff08;Instructi…

将视觉语言模型训练为智能手机助手

24年4月Agile Loop和德国弗赖堡大学的论文“Training A Vision Language Model As Smartphone Assistant”。 为了解决能够执行各种用户任务的数字助理挑战&#xff0c;该研究重点是基于指令的移动设备控制域。 用大语言模型 (LLM) 的最新进展&#xff0c;本文提出一种可以在移…

免费思维13招之十:增值型思维

免费思维13招之十:增值型思维 免费思维的另一大战略思维——增值型思维。 为了提高客户的粘性而促进重复性消费,我们必须对客户进行免费的增值型服务。 大家不要把增值型思维与赠品型思维混淆,增值型思维重心在于提高与消费者的粘性而促进重复消费,重心在后端。而赠品型思…

2024最新独立版校园跑腿校园社区小程序源码+附教程 适合跑腿,外卖,表白,二手,快递等校园服务

内容目录 一、详细介绍二、效果展示1.部分代码2.效果图展示 三、学习资料下载 一、详细介绍 后台php&#xff0c;前端uniapp可以二次开 2024最新独立版校园跑腿校园社区小程序源码附教程 测试环境&#xff1a;NginxPHP7.2MySQL5.6 多校版本&#xff0c;多模块&#xff0c;适…

设计模式-11 - Bridge Method 桥接模式

设计模式-11 - Bridge Method 桥接模式 1.定义 桥接模式是一种设计模式&#xff0c;它将抽象部分与其实现部分分离&#xff0c;使它们可以独立变化。它允许你改变抽象部分和实现部分的实现&#xff0c;而无需更改它们的接口。 结构&#xff1a; 桥接模式涉及四个主要角色&…

从iconfont引入线上字体库

如果是长期使用建议直接下载字体包 /* 在线链接服务仅供平台体验和调试使用&#xff0c;平台不承诺服务的稳定性&#xff0c;企业客户需下载字体包自行发布使用并做好备份。 */ 例如使用阿里妈妈数黑体 https://www.iconfont.cn/fonts/detail?spma313x.fonts_index.i1.d9df…

手动加载PE文件

今天手撸一下加载PE文件&#xff0c;并执行加载的PE文件。看完这一节之后相信大家会对PE文件的结构和在内存中的加载顺序有一个比较深刻的理解。 本文中可能对PE文件的基础知识介绍的不是很详细&#xff0c;建议大家先看看PE文件的基础结构&#xff0c;了解了这些基础知识后再看…

数据库面试总结

数据库相关 mysql使用的函数 字符相关: concant() 连接字符 trim()去除字符的首尾空格 space(n) 返回n个空格 char_length() 返回字符的个数 ucase()/upper()将字符串 s 的所有字母变成大写字母 lcase()/lower() 将字符串 s 的所有字母变成小写字母 substr/substring/mid(s, …

第十五章 数据管理成熟度评估练习

单选题 (每题1分,共19道题) 1、 [单选] 下列选项中属于数据管理成熟度2级特征的选项是? A:很少或没有治理;有限的工具集;单个竖井(系统)内定义角色;控件(如果有的话的应用完全不一致);未解决的数据质量问题 B:治理开始出现;引入一致的工具集;定义了一些角色和…