第九届省赛——8等腰三角形(找规律)

news2025/7/12 10:09:17

题目:

本题目要求你在控制台输出一个由数字组成的等腰三角形。

具体的步骤是:

1. 先用1,2,3,...的自然数拼一个足够长的串

2. 用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。

比如,当三角形高度是8时:

1

2 1

3 8

4 1

5 7

6 1

7 6

891011121314151

输入,一个正整数n(3<n<300),表示三角形的高度

输出,用数字填充的等腰三角形。

为了便于测评,我们要求空格一律用"."代替。

例如:

输入:

5

程序应该输出:

....1

...2.1

..3...2

.4.....1

567891011

再例如:

输入:

10

程序应该输出:

.........1

........2.2

.......3...2

......4.....2

.....5.......1

....6.........2

...7...........0

..8.............2

.9...............9

1011121314151617181

再例如:

输入:

15

程序应该输出:

..............1

.............2.3

............3...2

...........4.....3

..........5.......1

.........6.........3

........7...........0

.......8.............3

......9...............9

.....1.................2

....0...................8

...1.....................2

..1.......................7

.1.........................2

21314151617181920212223242526

资源约定:

峰值内存消耗(含虚拟机) < 256M

CPU消耗 < 1000ms

分析:

1

首先我们先把所有需要打印的数字按照顺序储存起来,等腰三角形的底边等于2乘腰-1,根据这个我们就可以用4n-4来表示所有需要打印的数字。

2

从1开始到99999一直往string字符串中加入数字,只要字符串长度大于4n-4就立即停止。

3

两层循环,第一层控制行数,第二层控制每行的总数量,通过观察我们发现左边的腰每次都向左移动,那么直接从一开始的值每次都减去控制行数的i,只要j等于h(1一开始对应的位置)-i-1那么直接顺序输出字符串中的数字,右边腰同理。其他情况全都打印.

4

最下面一行打印的是从第i项目到count-i+1

步骤:

package 历届真题省赛阶段;

import java.util.Scanner;

public class 测试1 {

    public static void main(String[] args) {
        int h = 15;// 高度
        int count = 4 * h - 4;// 需要的数字总数量
        String str = "";// 用于储存数字
        int k = 0;// 索引表,用来记录数字的使用
        for (int i = 1; i < 999999; i++) {
            if (str.length() > count) {//只要字符串长度大于需要的总数量那么就结束,要不就继续进行从1进行累加
                break;
            } else {
                str += i;
            }

        }
        for (int i = 0; i < h; i++) {//外层控制行数
            for (int j = 0; j < h + i; j++) {//内层控制每行的数量
                if (i == h - 1) {//当最后一行的时候直接进行字符串截取
                    System.out.print(str.substring(k, count - i + 1));
                    break;
                } else if (j == h - i - 1) {//左边的腰每次都向左移动,那么直接从一开始的值每次都减去控制行数的i
                    System.out.print(str.charAt(k++));//通过每次自增的索引来打印str正常顺序
                } else if (j == h + i - 1) {//右边的腰每次都向右移动,那么直接从一开始的值每次都减去控制行数的i
                    System.out.print(str.charAt(count - i));
                } else {
                    System.out.print(".");
                }

            }
            System.out.println();
        }

    }
}

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

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

相关文章

【卷积神经网络】激活函数 | Tanh / Sigmoid / ReLU / Leaky ReLU / ELU / SiLU / GeLU

文章目录一、Tanh二、Sigmoid三、ReLU四、Leaky ReLU五、ELU六、SiLU七、Mish本文主要介绍卷积神经网络中常用的激活函数及其各自的优缺点 最简单的激活函数被称为线性激活&#xff0c;其中没有应用任何转换。 一个仅由线性激活函数组成的网络很容易训练&#xff0c;但不能学习…

蓝桥杯C/C++b组第一题个人整理合集(5年真题+模拟题)

蓝桥杯C/Cb组填空第一题合集 前言 比赛标准的签到题&#xff0c;比赛时的第一题。不会考到什么算法&#xff0c;甚至都不需要你打代码。但有时候第一题都没做出来的确是非常挫灭信心 看了看历年题目。很多小陷阱也不少 今年的比赛也正好还有一个月&#xff0c;自己对填空题第…

XCPC第九站———背包问题!

1.01背包问题 我们首先定义一个二维数组f&#xff0c;其中f[i][j]表示在前i个物品中取且总体积不超过j的取法中的最大价值。那么我们如何得到f[i][j]呢&#xff1f;我们运用递推的思想。由于第i个物品只有选和不选两种情况&#xff0c;当不选第i个物品时&#xff0c;f[i][j]f[i…

云计算生态该怎么做?阿里云计算巢打了个样

2023 年 2 月 23 日至 24 日&#xff0c;由阿里云主办的「阿里云计算巢加速器」于杭州阿里云谷园区集结。 阿里云计算巢加速器于 2022 年 8 月正式启动招募&#xff0c;最终百奥利盟、极智嘉、EMQ、KodeRover、MemVerge 等 30 家创新企业入选计算加速器&#xff0c;覆盖了人工智…

16N60-ASEMI高压MOS管16N60

编辑-Z 16N60在TO-220封装里的静态漏极源导通电阻&#xff08;RDS(ON)&#xff09;为0.2Ω&#xff0c;是一款N沟道高压MOS管。16N60的最大脉冲正向电流ISM为48A&#xff0c;零栅极电压漏极电流(IDSS)为10uA&#xff0c;其工作时耐温度范围为-55~150摄氏度。16N60功耗&#xf…

Blazor_WASM之4:路由

Blazor_WASM之4&#xff1a;路由 路由模板 通过 Router组件可在 Blazor 应用中路由到 Razor 组件。 Router 组件在 Blazor 应用的 App 组件中使用。App组件模板如下 <Router AppAssembly"typeof(Program).Assembly"><Found Context"routeData"…

致敬我的C++启蒙老师,跟着他学计算机编程就对了 (文末赠书5本)

致敬我的C启蒙老师&#xff0c;跟着他学计算机编程就对了 摘要 讲述了一个故事&#xff0c;介绍了一位良师&#xff0c;一段因C而续写的回忆&#xff0c;希望对各位看官有所帮助和启发。 文章目录1 写在前面2 我的C启蒙老师3 谈谈老师给我的启发4 友情推荐5 文末福利1 写在前面…

Python 模块之 CSV 读取

1、CSV 文件存储 1.1 写入 简单示例 import csvwith open(data.csv, a) as csvfile:writer csv.writer(csvfile) # 初始化写入对象&#xff0c;传入文件句柄writer.writerow([id, name, age]) # 调用 writerow() 方法传入每行的数据writer.writerow([1, rose, 1…

python安装好了某个包但是仍报错ImportError: No module named xxx的解决方法及思路

这是一个应该比较常见的问题&#xff0c;下面首先讲一下该类问题的一般解决 思路&#xff0c;然后再进行一个自我debug的过程描述。 1 解决思路 出现该问题的根本原因是&#xff0c;当前使用的python环境&#xff0c;和已经安装了包的python环境不是同一个。解决问题一般可以根…

数组、指针总结【面试题】

文章目录0. 补充知识数组笔试题1. 一维数组1.1 字符数组1.1.1 sizeof1.1.2 strlen1.2 二维数组2. 指针笔试题0. 补充知识 在进入数组与指针的练习时&#xff0c;我们先来复习以下以下的知识点&#xff0c;这可以帮助我们更好的理解下面练习 数组是一组能存放相同类型的类型的元…

数据库的查询

数据库的查询 一、知识要点&#xff1a; 1.SELECT语句的一般格式 SELECT [ ALL|DISTINCT ] [TOP N [PERCENT] ] <目标列表达式> [别名] [&#xff0c;<目标列表达式> [别名] ]… FROM <表名或视图名> [ 别名 ][&#xff0c;<表名或视图名> [ 别名 ] ]…

JavaScript DOM API的使用

文章目录一. 什么是DOM二. 最常用的DOM API1. 选中页面元素2. 操作元素的属性2.1 事件概念2.2 获取/修改元素内容计数器2.4 获取/修改元素属性点击图片切换2.5 获取/修改表单元素属性表单计数器全选/取消全选按钮2.6 获取修改样式属性点击文字放大实现夜间/日间模式的切换3. 操…

【C++】反向迭代器

文章目录一、什么是反向迭代器二、STL 源码中反向迭代器的实现三、reverse_iterator 的模拟实现四、vector 和 list 反向迭代器的实现一、什么是反向迭代器 C 中一共有四种迭代器 – iterator、const_iterator、reverse_iterator 以及 const_reverse_iterator&#xff0c;其中…

基层治理四平台解决方案

本资料来源公开网络&#xff0c;仅供个人学习&#xff0c;请勿商用。部分资料内容&#xff1a; 省基层治理体系“四个平台”采用“1N"统分结合的建设模式:即统筹建设“1"个浙江政务服务网基层业务协同平台(以下简称“协同平台”)&#xff0c;同步改造、整合、推广“N…

【java】Collection源码阅读(JDK 8)

package java.util;import java.util.function.Predicate; import java.util.stream.Stream; import java.util.stream.StreamSupport;/*** 集合层次结构的根接口&#xff0c;一个集合表示一组对象&#xff0c;称为元素* JDK不提供任何该接口的直接实现&#xff0c;JDK提供实现…

Elasticsearch 核心技术(六):内置的 8 种分词器详解 + 代码示例

❤️ 博客主页&#xff1a;水滴技术 &#x1f680; 支持水滴&#xff1a;点赞&#x1f44d; 收藏⭐ 留言&#x1f4ac; &#x1f338; 订阅专栏&#xff1a;大数据核心技术从入门到精通 文章目录一、内置分词器1. Standard&#xff08;标准分词器&#xff09;英文示例中文示例…

八.异常控制流ECF

1.异常异常位于硬件和OS的交界部分系统调用是为应用程序提供到OS的入口点的异常进程和信号位于应用和OS的交界部分非本地跳转是ECF的应用层形式1.1 异常表异常是控制流中的突变&#xff0c;用来响应处理器状态的某些变化状态变化称为事件系统中可能的每种类型的异常都分配了一个…

虹科教您 | 在Windows环境下安装PCAN View及通讯测试指南

应用简介 PCAN-View软件是一款简化的CAN监视软件&#xff0c;可用于显示、发送、和记录CAN数据通讯。报文可手动和定期发送&#xff0c;用户可设置比特率。在处理期间显示总线系统错误和CAN硬件的存储器过满。示踪功能可用于记录和保存CAN数据通讯。本文档的作用在于&#xff…

软件测试的几个关键步骤,你需要知道

记得2年前刚毕业的时候听说了软件测试这个行业&#xff0c;当时也去百度仔细进行了一番搜索&#xff0c;评价基本千篇一律的看好。 看好的原因在于&#xff0c;专家认为未来的互联网市场用户体验至上&#xff0c;而产品质量与用户体验有紧密的联系&#xff0c;自从近年产品经理…

eyoucms field 获取channelartlist标签的字段值

【基础用法】 标签&#xff1a;field 描述&#xff1a;获取channelartlist标签里的字段值&#xff0c;field标签只能在channelartlist标签里使用。 用法&#xff1a; {eyou:channelartlist typeid栏目ID typeson row20} <a href{eyou:field nametypeurl /}>{eyou:fi…