viple进阶4:打印空心三角形
题目:根据用户输入的行数n打印空心三角形,下图分别为n=3、n=4、n=5和n=10的效果图




第一步:观察效果图
- 输入的行数为3,打印结果就有3行;输入的行数为4,则打印结果就有4行;以此类推,输入的行数为n,则打印n行
- 第一个图,第一行打印1颗星;第二行打印2颗星;第三行打印3颗星;
- 第二个图,第一行打印1颗星;第二行打印2颗星;第三行打印2颗星,且两颗星中间有一个空格,所以,第三行是打印了3个,分别是星号、空格、星号;第四行,打印了4颗星。
- 第三个图,第一行打印1颗星;第二行打印2颗星;第三行打印2颗星,且两颗星中间有一个空格,所以,第三行是打印了3个,分别是星号、空格、星号;第四行,打印了2颗星,且两颗星中间有2个空格,所以第四行打印了4个,分别是星号、空格、空格、星号,第5行打印了5颗星
- 第四个图,第一行打印1颗星;第二行打印2颗星;第3~9行,均打印2颗星,如果把行数记为n,,则每行中两颗星号之间的空格数分别是n-2。
第二步:设计解决方案与实现
首先打印的图形的行数需要用户进行输入,故,首先设计有一个数据活动传输数据给自定义活动。

自定义活动用于打印空心三角形
根据观察到的现象,发现,每个图形的第一行打印1颗星;第二行打印2颗星,最后一行打印的星号数和输入的行数相等。
其余的行数,打印的星号数均为2,分别在所在行的第一个位置和最后一个位置,其他的位置打印空格。
如果将行数i从0开始计数,则第一行是i==0时,表示第一行,此时需要打印1颗星;第二行是i==1,此时需要打印2颗星;所以,打印的星号数刚好可以通过行数i+1计算所得。当i==外部输入的行数时,此时打印的星号数等于行数,由于行数从0开始计数,而外部传入的行数是从1开始计数的,所以i==外部行数-1时,表示是最后一行了,需要打印外部行数这么多颗星。

由于要打印1颗星、打印2颗星甚至是n颗星,所以,创建一个自定义活动,用于打印n颗星(之前的讲解中曾多次提到,具体思考不再讲解)

刚刚已经考虑了第一行,第二行、第n行。还有3~n-1行的每一行打印,这些行有一个特点:每行均有两颗星,分别在该行的第一个位置和最后一个位置,其余位置均为空格。所以,需要单独写一个自定义活动来进行处理。

用变量j来标记某一行的位置,则j==0和j==n时,分别表示该行的第一个位置和最后一个位置,该位置上需要打印的是星号。其余位置,需要打印的是空格。
所以,需要将每行的每一个位置上应该打印的进行拼接,直到循环结束,把一行的所有需要打印的数据拼接完成后,形成:星号+空格(可能有多个)+星号的形式,再进行打印。
第三步:测试
输入10测试
输入20测试:

相关文章:
viple进阶4:打印空心三角形
题目:根据用户输入的行数n打印空心三角形,下图分别为n3、n4、n5和n10的效果图 第一步:观察效果图 输入的行数为3,打印结果就有3行;输入的行数为4,则打印结果就有4行;以此类推,输入的…...
Oauth2.0的内容
OAuth 2.0是一个授权协议,用于允许第三方应用程序访问用户在另一个应用程序上存储的受保护资源,而不需要将用户名或密码公开给第三方应用程序。 OAuth2.0基于客户端-服务器模型,通常需要三个主体:客户端、资源所有者和授权服务器…...
npm 下载包失败解决方案
1.【问题描述】使用 npm 下载vue项目依赖包时失败,版本不一致。 【解决方法】使用 npm install --force npm install --force 是一个命令行指令,用于在 Node.js 环境中使用 npm(Node Package Manager)安装包或模块。–force 参数表…...
C语言---插入排序、希尔排序、冒泡排序、选择排序、快速排序简单介绍
文章目录 插入排序希尔排序冒泡排序选择排序快速排序 本文主要介绍用C语言实现的一些排序方法,有插入排序、希尔排序、冒泡排序、选择排序和快速排序,文章中给出的例子都是按照升序排列的。 插入排序 若数组只有一个元素,自然不用排序&#…...
撸视频号收益这个副业靠谱吗?
我是卢松松,点点上面的头像,欢迎关注我哦! 昨天有个人问我说做视频号能月入过万吗? 我的回复是:99%的人不能。 但为什么会经常有人这么问呢,松松思考了一下,原因是最近很多人在晒视频号撸收益的项目&am…...
2、数组、Map+HashMap、Set+Hashset、Char和Character类、String类和Char类、Math类
数组 \\一个普通的长度为1的整数数组 Integer[] arr new Integer[1];\\一个普通长度为1的同时元素初始化为1的整数数组。 Integer[] arr new Integer[]{1};\\一个长度为0的空数组 Integer[] arr new Integer[0];Map 常见方法 void clear( ) 从此映射中移除所有映射关系&#…...
ESP8266 WiFi模块快速入门指南
ESP8266是一种低成本、小巧而功能强大的WiFi模块,非常适合于物联网和嵌入式系统应用。本指南将为您提供关于ESP8266 WiFi模块的快速入门步骤和基本知识。 第一步:硬件准备 首先,您需要将ESP8266 WiFi模块与您的开发板连接。通常情况下&#…...
微信小程序将后端返回的图片文件流解析显示到页面
说明 由于请求接口后端返回的图片格式不是一个完整的url,也不是其他直接能显示的图片格式,是一张图片 后端根据模板与二维码生成图片,返回二进制数据 返回为文件流的格式,用wx.request请求的时候,就自动解码成为了下面这样的数据数据格式,这样的数据没…...
网络基础(1)
目录: 1.了解局域网(LAN)和广域网(WAN) 2.认识“协议” 3.浅谈OSI七层模型 4.网络传输的基本流程 5.路由器这个设备 ---------------------------------------------------------------------------------------…...
flink的AggregateFunction,merge方法作用范围
背景 AggregateFunction接口是我们经常用的窗口聚合函数,其中有一个merge方法,我们一般情况下也是实现了的,但是你知道吗,其实这个方法只有在你使用会话窗口需要进行窗口合并的时候才需要实现 AggregateFunction.merge方法调用时…...
Day25力扣打卡
打卡记录 寻找旋转排序数组中的最小值(二分) 链接 由于是旋转排序数组,所以整个数组有两部分是递增的,选取右侧最后元素,即可将整个数组分为大于该元素和小于该元素,碰头地段即为最小值。 class Solutio…...
SpringCloud - OpenFeign 参数传递和响应处理(全网最详细)
目录 一、OpenFeign 参数传递和响应处理 1.1、feign 客户端参数传递 1.1.1、零散类型参数传递 1. 例如 querystring 方式传参 2. 例如路径方式传参 1.1.2、对象参数传递 1. 对象参数传递案例 1.1.3、数组参数传递 1. 数组传参案例 1.1.4、集合类型的参数传递…...
Postgresql数据类型-布尔类型
前面介绍了PostgreSQL支持的数字类型、字符类型、时间日期类型,这些数据类型是关系型数据库的常规数据类型,此外PostgreSQL还支持很多非常规数据类型,比如布尔类型、网络地址类型、数组类型、范围类型、json/jsonb类型等,从这一节…...
SPASS-交叉表分析
导入数据 修改变量测量类型 分析->描述统计->交叉表 表中显示行、列变量通过卡方检验给出的独立性检验结果。共使用了三种检验方法。上表各种检验方法显著水平sig.都远远小于0.05,所以有理由拒绝实验准备与评价结果是独立的假设,即认为实验准备这个评价指标是…...
用Python的requests库来模拟爬取地图商铺信息
由于谷歌地图抓取商铺信息涉及到API使用和反爬虫策略,直接爬取可能会遇到限制。但是,我们可以使用Python的requests库来模拟爬取某个网页,然后通过正则表达式或其他文本处理方法来提取商铺信息。以下是一个简单的示例: # 导入requ…...
使用EvoMap/Three.js模拟无人机灯光秀
一、创建地图对象 首先我们需要创建一个EM.Map对象,该对象代表了一个地图实例,并设置id为"map"的文档元素作为地图的容器。 let map new EM.Map("map",{zoom:22.14,center:[8.02528, -29.27638, 0],pitch:71.507,roll:2.01,maxPit…...
11.9存储器实验总结(单ram,双ram,FIFO)
实验设计 单端口RAM实现 双端口RAM实现 FIFO实现 文件结构为...
linux(ubuntu)安装并使用scrcpy
scrcpy 是一款开源的在计算机上显示和控制 Android 设备的工具。要在 Ubuntu 上使用 scrcpy,你可以按照以下步骤进行安装: 通过命令行安装 scrcpy: 安装 scrcpy: 打开终端(Terminal)并执行以下命令来安装…...
linux rsyslog安装配置
syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/rsyslog.conf文件。syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点。syslog使用UDP 514/TCP 514端口。 1.环境信息 环境信息 HostnameIpAddressOS versionModuleNoterh…...
美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens
Embarcadero 非常高兴地宣布发布 RAD Studio 12 Athens 以及 Delphi 12 和 CBuilder 12。RAD Studio 12 Athens 版本包含令人兴奋的新功能,为该产品的未来奠定了基础。 目录 主要新功能 C 的奇妙之处Delphi 的一些不错的补充FireMonkey 和 Skia 作为新基金会采用 MD…...
喜马拉雅音频下载终极指南:3步实现永久离线收藏
喜马拉雅音频下载终极指南:3步实现永久离线收藏 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 你是否曾遇到过这样的场…...
AI短视频一键生成系统源码,对接Sora2、可灵、即梦等模型,实现低成本影视级短剧生产
温馨提示:文末有资源获取方式一、市场背景与技术选型根据最新行业数据,2025年国内短剧企业已近10万家,上半年市场规模突破600亿。随着Sora2、可灵、即梦等AI视频模型的快速迭代,传统影视创作的专业壁垒正在被打破。一套完整的AI短…...
木及简历证件照功能深度评测:打破传统模板约束的创新设计
木及简历证件照功能深度评测:打破传统模板约束的创新设计 【免费下载链接】react-resume-site 木及简历,一款markdown的在线简历工具。 https://www.mujicv.com 项目地址: https://gitcode.com/gh_mirrors/re/react-resume-site 木及简历是一款用…...
PatchTST论文精读与复现:手把手带你理解‘时间序列的64个词’
PatchTST论文精读与复现:手把手带你理解"时间序列的64个词" 当Transformer架构在NLP和CV领域大放异彩时,时间序列预测领域却长期被传统统计方法和浅层神经网络主导。直到2023年PatchTST的出现,才真正打破了这一僵局。这篇来自顶级学…...
claude code支持
一、日常对话效率tips新任务,不是同一个问题就 /clear 旧任务回来继续,先 /resume 任务边界明确了,顺手 /rename 感觉开始发散,先看 /context 上下文重了,就 /compact 支线小问题,尽量放 /btw 平时把 /stat…...
工业PLC中MPCT控制器的实现与优化
1. MPCT控制器在工业PLC中的实现架构在工业自动化领域,模型预测控制(MPC)因其出色的多变量约束处理能力而备受青睐。然而,传统MPC在工业可编程逻辑控制器(PLC)上的实现面临两大挑战:一是嵌入式设备的计算资源有限,二是需要处理参考…...
从DBC到C代码:手把手教你用cantools命令行生成车载通信源码(附工程集成指南)
从DBC到C代码:手把手教你用cantools命令行生成车载通信源码(附工程集成指南) 在汽车电子领域,CAN总线作为车载网络的核心神经系统,承载着ECU之间海量的实时数据交换。而DBC文件则是这个神经系统的"字典"&…...
告别网页监控:手把手教你用阿里云“云产品流转”+ MIT App Inventor实现设备间数据互通
物联网设备间通信实战:基于阿里云流转与MIT App Inventor的跨平台数据交互 在智能硬件开发领域,设备间的数据互通一直是核心挑战之一。想象一下,当你的STM32传感器采集到环境数据后,如何实时同步到移动端?传统方案往往…...
应对Turnitin严查:英文论文降AIGC率不踩坑的正确方法(附实操达标教程)
前几天我把初稿发给导师,内容没什么大问题,但是英文部分的AI率实在太高了,我自己用系统跑了一遍测试,turnitin检测ai率高达95%,我当时看着结果彻底懵了。 英文降ai确实难,很多人不知道怎么给英文降ai&…...
MiniCPM-O-4_5-GGUF 全解析
一、模型简介MiniCPM-O-4_5-GGUF 是面壁智能(OpenBMB)推出的 MiniCPM-O-4.5 全模态大模型的轻量化量化版本,采用 GGUF 格式优化,专为端侧与低资源设备设计,是当前开源社区中性能最强、部署门槛最低的全模态小参数模型之…...

