蓝桥杯打印十字图

java实现 历届试题 蓝桥杯 打印十字图 历届试题 打印十字图 时间限制:1.0s 内存限制:256.0MB 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: … ...... ......…$… $. $. $. $. $ .........…......... $. $. $. $. $. ... ...….........…... .... .... .... ....$ .............….... 阅读详情

问题描述

小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:

..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..

对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。

输入格式

一个正整数 n (n<30) 表示要求打印图形的层数。

输出格式

对应包围层数的该标志。

样例输入1

1

样例输出1

..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..

样例输入2

3

样例输出2

..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..

提示

请仔细观察样例,尤其要注意句点的数量和输出位置。

以上是原题。

解题思路:将图形分割,找出其中规律。并利用二维数组存放图形

规律是

.

. .

$$$             //从这里往下前面都加了$ .

$ . . . .

$ . $ $ $

 

中间部分

         $

       . $ .

     $ . . . $   //规律是从第二行开始两边是点中间都是$ 

  . $ $ $ $ $ .   //相反亦然,数量是每层+4个

然后对打印出来部分的进行反转

三角上下反转然后左右反转

正三角上下翻转

最后输出二维数组

以下是代码:

import java.util.Scanner;
public class Main {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in=new Scanner(System.in);
		int n=in.nextInt();
		char[][] graph=new char[5+4*n][5+4*n];
		initBorderPoint(n,graph);
		initCenterPoint(n,graph);
		for(int i=0;i<5+4*n;i++) {
			for(int j=0;j<5+4*n;j++) {
				System.out.print(graph[i][j]);
			}
			System.out.println();
		}

		in.close();
        
	}
	
	
	public static void initBorderPoint(int n,char[][] graph) {		
		graph[0][0]='.';
		graph[1][0]='.';graph[1][1]='.';
		graph[2][0]='$';graph[2][1]='$';graph[2][2]='$';		
		for(int i=0;i<2*n;i++) {  
			graph[3+i][0]='$';graph[3+i][1]='.';
			for(int j=0;j<2+i;j++) {
				graph[3+i][2+j]=graph[3+i-2][j];
			}
		}		
		
		//左上给左下
		int s=1;
        for(int i=0;i<graph.length/2;i++) {       	
        	for(int j=0;j<s;j++) {       		
        		graph[graph.length-1-i][j]=graph[i][j];
        		
        	}
        	s++;		
		}
        
        //左上给右上
        int c=1;
        for(int i=0;i<graph.length/2+1;i++) {
        	for(int j=0;j<c;j++) {
        		graph[i][graph.length-1-j]=graph[i][j];
        	}
        	c++;
        }
        
        //左下给右下
        c=1;
        for(int i=graph.length;i>graph.length/2+1;i--) {
        	for(int j=0;j<c;j++) {
        		graph[i-1][graph.length-1-j]=graph[i-1][j];
        	}
        	c++;
        }
		
		
		
	}
	
	
	
	public static void initCenterPoint(int n,char[][] graph) {
		graph[graph.length/2-1][graph.length/2]='$';
		graph[graph.length/2-2][graph.length/2-1]='.';
		graph[graph.length/2-2][graph.length/2]='$';
		graph[graph.length/2-2][graph.length/2+1]='.';
		for(int i=1;i<2*n+1;i++) {
			for(int j=0;j<2+i;j++) {
				if(i%2!=0&&j==0) {
					graph[graph.length/2-2-i][graph.length/2]='.';
				}else if(i%2==0&&j==0) {
					graph[graph.length/2-2-i][graph.length/2]='$';
				}
				if(graph[graph.length/2-2-i][graph.length/2]=='.'&&j>0&&j<2+i-1) {
					graph[graph.length/2-2-i][graph.length/2+j]='.';
					graph[graph.length/2-2-i][graph.length/2-j]='.';
				}else if(graph[graph.length/2-2-i][graph.length/2]=='$'&&j>0&&j<2+i-1) {
					graph[graph.length/2-2-i][graph.length/2+j]='$';
					graph[graph.length/2-2-i][graph.length/2-j]='$';
				}
				
				if(i%2!=0&&j==2+i-1) {
					graph[graph.length/2-2-i][graph.length/2+j]='$';
					graph[graph.length/2-2-i][graph.length/2-j]='$';
				}else if(i%2==0&&j==2+i-1) {
					graph[graph.length/2-2-i][graph.length/2+j]='.';
					graph[graph.length/2-2-i][graph.length/2-j]='.';
				}
               				
				
			}
		}
		
		for(int i=0;i<2+2*n;i++) {
			for(int j=0;j<1+i;j++) {				
				graph[graph.length/2+1+i][graph.length/2]=graph[graph.length/2-1-i][graph.length/2];		
			    if(j>=1) {
			      graph[graph.length/2+1+i][graph.length/2+j]=graph[graph.length/2-1-i][graph.length/2+j];
			      graph[graph.length/2+1+i][graph.length/2-j]=graph[graph.length/2-1-i][graph.length/2-j];
			    }
			    
			}
		}
		
			
	}

}

 

 

 

蓝桥杯 打印十字图 左边图是输入3时的结果,右边是输入1时的结果,之前曾经想要不要用规划,查了一下发现没有必要,把图形分成四块,每块又分成三个部分,开个字符数组赋值输出就可以了,很简单 阅读详情

相关推荐

蓝桥杯历届试题-打印十字图

题目问题描述 小明为某机构设计了一个十字型的徽标

Kai 9794

【蓝桥杯】历届试题 打印十字图(文字图形)

这道题现在看来很简单,但是在当时还是很懵的。我们来说说这道题的解题思路,显然这里存在一个规律:对于每一行(假设为第 $i$ 行($i$ 从 1 开始),当前输入的值为 $n$),前面的`空格数`都满足:空格数 = $n - i$;中间的 `*` 个数满足: `*` 个数= $2\times i - 1$。于是可以很快的写出这道题的代码为:

酱懵静的博客 6146

蓝桥杯:打印十字图

历届试题 打印十字图   时间限制:1.0s   内存限制:256.0MB 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$..

qingdujun 8162

蓝桥杯解题(一)打印十字图 时间限制:1.0s 内存限制:256.0MB

原题描述:历届试题 打印十字图 时间限制:1.0s 内存限制:256.0MB锦囊1使用二维数组。锦囊2使用二维数组把图形保存下来,然后再输出。问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。输入格式一个正整数 n (n&lt;30) 表示要求打印图形的层数。输出格式对应包围层数的该标志。样例输入...

smallerxuan的博客 5813

蓝桥杯练习:打印十字图

问题 1442: [蓝桥杯][2013年第四届真题]打印十字图 原题链接:问题 1442: [蓝桥杯][2013年第四届真题]打印十字图 解体思路:一个简单的找规律题,因为这个图是完全对称的,所以只要找到一部分的归路就可以,按下图截取左上角,分别找到ABC的输出规律,然后将这一整块反转拼成上半部分,再把拼成的上半部分倒着输出拼成全图。 package 蓝桥; import java.util.S...

TmikuJ的学习笔记 301

Hopfield神经网络(HNN)详解

Hopfield神经网络是一种比较特殊的网络,它不像一般的神经网络那样有输入层和输出层,并且通过训练来改变神经网络中的参数,最终实现预测、识别等功能。Hopfield网络只有一群神经元节点,所有节点之间相互连接,形式如下: 虽然有些文章会画出像深度神经网络那样有输入输出的图,并且输出后又返回输入,但本质上就是多个节点之间的全连接,也就是上面的图形。Hopfield神经网络主要有两个应用:一是起到类似储存器的作用,也就是我们把多个序列或图片输入这个网络,最终这个网络会以神经元之间连接权重的形式储存这

weixin_60737527的博客 4万+

蓝桥杯十字图- - 联想回型数组的构造(模拟)

蓝桥杯题目,绘制出十字图,可以看出,是一圈一圈绘制的。回想起牛客网上的回型矩阵题目(下文的回型数组也就是回型矩阵),题目链接如下 回型矩阵 (nowcoder.com)https://ac.nowcoder.com/acm/problem/22230直接上图比较 当时写这道回型数组的题目,没有思路,看了题解后发现,就是一圈一圈走(模拟)。 #include <iostream> #include <vector> using namespace std; int...

weixin_54010759的博客 759

氮化镓GaN电机驱动实战:从器件原理到EPC驱动中心

电机驱动是工业自动化和电动交通的核心,功率器件的选择直接决定系统效率与可靠性。传统硅基IGBT和MOSFET在开关速度、损耗方面存在瓶颈,而氮化镓(GaN)作为宽禁带半导体,凭借高电子迁移率、低栅极电荷和近乎为零的反向恢复电荷,正成为电机驱动领域的热门选择。EPC建立电机驱动中心,提供完整的评估平台,覆盖从低压家电到中压伺服的应用场景。文章从GaN器件原理出发,对比传统硅器件,详解三相BLDC/PMSM驱动系统的搭建、栅极驱动与Layout设计、死区时间设置及参数计算实例,并分享测试中遇到的振铃、EMI等高

weixin_29168675的博客 323

蓝桥杯历题——打印十字图

题目链接:打印十字图 题意 给你一个图形,进行观察图形规律(可结合样例分析)。输入一个正整数代表要打印的层数,输出该层数的图形。 思路 (以3层样例举例说明) 如上图,为便于观察,我们把图一(字符图)等化为图二(方块图)。可发现十字徽标可划分为四个区域,四个区域相互对称。因此我们不妨暴力模拟出其中一个区域的字符分布,其余三个区域则运用对称关系得出分布结果。比如暴力1区域(从0到中点8),先从图中的小角入手,再向下、向右延伸,最终把结果存于数组中,输出结果。 代码 #include <iostrea

weixin_44091134的博客 593

Coursera | 离散数学概论(北大)| quiz答案

Coursera离散数学概论quiz答案Week1:数理逻辑:基本概念Week2:数理逻辑:命题逻辑及形式系统Week3:数理逻辑:谓词逻辑及形式系统Week4:集合论:集合代数   先放下Coursera上找的离散数学部分相关课程:   btw.线上学习拿证书还有很多,MOOC、edm等都可。   博主选了北京大学离散数学概论Discrete Mathematics Generality。Mooc上貌似也有,但是上课时间貌似不如Coursera灵活,Coursera时间自己调度,规定时间上完即可。目前课

小鱼干的博客 4126

NHANES更新数据后,权重计算方式也更新了

官网说明在此:如果你比我还懒,我下载了几个说明文件。2021年8月至2023年8月的总样本量与之前的2年周期相似。然而,。特别是,与之前包括过度抽样的周期相比,非西班牙裔白人的样本量较高,而非西班牙裔黑人的样本量较低。此外,60岁及以上人群的样本量较高,而年轻群体的样本量较低。子组的估计值可能具有较低的精确度,因此,检测组间差异的统计能力可能较低。此外,年龄和种族/西班牙裔亚组(尤其是儿童和青少年年龄组)的估计值可能会显示意想不到的模式。

珏世佳人的博客 2410

蓝桥杯真题 十字图

问题描述 小明为某机构设计了一个十字型的徽标,如下所示: 层数为4层 输入格式 一个正整数 n (n<30) 表示要求打印图形的层数。 输出格式 对应包围层数的该标志。 样例1 n=1 n=3 算法分析 这种题目一般是找规律来按照格式输出图,看到上面那三个层数分别为1,3,4的图形,我们慢慢的找规律,发现层数为1的话就是中间一个十字,外面套一圈黑点,再套一圈$符号,那么层数为n就是,中间一个十字,重复n次外面套一圈黑点,再套一圈符号,规律我们分析完之后看这个图像是中心轴对称的图像,我们可以考虑先

weixin_44965308的博客 795

Temporal Fusion Transformer(TFT)与扩散模型融合:时间序列预测新范式

本文探讨了Temporal Fusion Transformer(TFT)与扩散模型融合的时间序列预测新范式。该融合方案利用TFT强大的特征提取与可解释性,为扩散模型提供精准的“导航图”,从而在噪声数据中实现鲁棒预测,并原生支持不确定性量化,输出完整的概率分布与置信区间,为金融、能源等领域的风险决策提供更可靠的依据。

weixin_29096377的博客 289

[蓝桥杯]打印十字图

打印十字图-蓝桥杯历届试题 打印十字图-蓝桥杯历届试题 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。 输入格式 一个正整数 n (n&lt;30) 表示要求打印图形的层数。 输出格式 对应包围层数的该标志。 样例输入1 1 样例输出1 样例输入2 3 样例输出2 提示 请仔细观察样例,尤...

cp0328的博客 3311

星链V3的2048条波束与1Tbps:多波束相控阵的工程代价

低轨卫星通信的容量提升,核心在于多波束相控阵天线的空间复用能力。相控阵通过控制大量天线单元的相位,可在同一阵面同时形成多条独立指向的波束,从而在有限频谱内成倍提升系统容量。星链V3宣称的2048条波束与1 Tbps汇聚吞吐量,正是基于这一原理:更多波束意味着更高的频率复用系数和更灵活的资源调度。但工程实现并非免费午餐,数字背后是供电、散热、重量、发射成本及运维复杂度的急剧攀升。从用户侧看,更精细的波束也带来切换频繁、低仰角衰减等新挑战。本文从多波束相控阵的基础原理出发,拆解波束形成、频谱复用和动态调度的工程

weixin_33462167的博客 346

Simeck算法流程

算法流程 paper在此:https://eprint.iacr.org/2015/612.pdf x ⋘\lll⋘ c denotes the cyclic shift of x to the left by c bits. x & y is the bitwise AND of x and y. x⊕yx \oplus yx⊕y is the exclusive-or (XOR) of x and y. github代码在此:https://github.com/bozhu/Simeck

Simp123 1074

蓝桥杯第四届真题 :打印十字图

点击查看:蓝桥杯历年真题 题解目录 打印十字图

Xiong-er 的博客 445

ACS运动控制器编程 怎么学习

本文介绍了ACS运动控制器编程的完整学习路线,从零基础到实战应用。ACS是以色列高端多轴运动控制平台,适用于自动化设备、精密平台等项目。学习路径包括:1)安装官方软件SPiiPlusControlSuite;2)掌握轴、运动模式和指令三个核心概念;3)学习10个基础指令;4)编写首个运动程序;5)结合C#进行联合编程。进阶内容包括多轴同步、电子凸轮等工业应用,并推荐官方手册作为主要学习资源。通过7天的系统学习,即可掌握单轴运动控制,结合C#实现工业级设备开发。

StevenChen的博客 1312

蓝桥杯 打印十字图 Java

蓝桥杯 打印十字图 Java 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数。 输入格式 一个正整数 n (n&amp;amp;lt;30) 表示要求打印图形的层数。 输出格式 对应包围层数的该标志。 样例输入1 1 样例输出1 样例输入2 3 样例输出2 提示 请仔细观察样例,尤其要注意句点的数量和输出位...

密斯吴的博客 472

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

#蓝桥杯练习#打印十字图

[蓝桥杯][2013年第四届真题]打印十字图 #include <bits/stdc++.h> using namespace std; int a[135][135]; int main() { int n, m; scanf("%d", &n); m = 2 * n + 3; for (int i = 3; i <= m; i++)...

vircorns的博客 241

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

蓝桥杯历届试题:打印十字图

题目: 一开始看到这个问题的时候自己也是完全找不到头脑,而且经过仔细一想之后,这个图本身就有误导作用,因为它看起来根本就是像一个长方形,会严重影响你的思路,建议大家在草稿纸上重新把图画一下,然后你会发现这是一个正方形,并且这个图和标准正方形一样拥有四个对称轴,然后你就会发现其实不难。 我的思路是:完成它的一半,然后根据对称原则复制另半个正方形。 根据图上线索,你会发现再多层的十字图由内到外都有...

a1106103430的博客 425

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

蓝桥杯历届试题-打印十字图-Python实现

蓝桥杯历届试题-打印十字图-Python实现个人觉得打印题主要是考查找规律的能力和细心,这里还有二维数组的运用吧。思路写在代码的注释中了,直接上码 个人觉得打印题主要是考查找规律的能力和细心,这里还有二维数组的运用吧。思路写在代码的注释中了,直接上码 n = int(input()) # 给边界赋值,方便码字 boundary = 5+(n-1)*2 # 整体图形分为4块,全部初始化为'.'...

Klingx的博客 1371

蓝桥杯——打印十字图

历届试题 打印十字图 时间限制:1.0s 内存限制:256.0MB 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$.. ..$...........$.. $$$.$$$$$$$$$.$$$ $...$.......$...$ $.$$$.$$$$$.$$$.$ $.$...$...$...$...

qq_44763840的博客 909

206. 2013年蓝桥杯省赛 - 打印十字图(困难)- 模拟

本文解析了一道字符图案构造题“打印十字图(困难)”,要求根据输入的层数打印出具有中心对称结构的十字形字符图案。通过构建左上角象限(第二象限)的图案并利用对称性生成其余部分,有效简化了绘图逻辑。算法使用二维数组模拟字符画,按层绘制横线、竖线与对角线连接,并拼接镜像输出完整图案。整体设计体现了对称构造与模拟算法的巧妙结合,适合用于锻炼逻辑推理、坐标转换和字符处理能力。此方法具有良好的可拓展性与输出控制精度,适用于基础图形模拟类题目训练。

MoRanzhi1203的博客 1238
上一篇: Java Swing 动态/同一位置 添加删除控件
下一篇: centos无法启动tomcat解决方案(阿里云、centos7)
Android_tools
博客等级 码龄9年 24粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值