历届试题 打印十字图

问题描述

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

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

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

输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2
3
样例输出2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
思路:我在做这道题的时候发现整个矩阵是中心对称,其他的规律一直没有找到,直到看到下面这张图
才发现这个矩阵要表达的图案是这个样子的,很无语,。仔细观察这个图我们发现他是中间一个红色的十,然后向外不断扩展的一层层的环,n代表环数,,所以我们可以在程序中一层层生成。因为整个图案是中心对称的,我们可以先求四分之一,在此基础上扩展为二分之一,再扩展为全部。
代码如下
 1 import java.util.Scanner;
 2 
 3     public class Main{
 4         
 5         public static void main(String[] args){ 
 6             Scanner scanner=new Scanner(System.in);
 7             int n=scanner.nextInt();
 8             answer(n);
 9             
10         }
11        public  static void answer(int n)
12        {
13            
14            int m=5+4*n;
15            int middle=m/2+1;
16            char array[][]=new char[m+1][m+1];
17            for (int i = 1; i <= m; i++) {
18             for (int j = 1; j <= m; j++) {
19                 array[i][j]='.';
20             }
21         }
22            for (int i = -2; i <=2; i++) {//初始化中间的十字
23             array[middle+i][middle]='$';
24            }
25            for (int j = -2; j <=2; j++) {
26                array[middle][middle+j]='$';
27             }
28            for (int i = 0; i < n; i++) {//表示层数
29             for (int j = middle-4-2*i; j <=middle; j++) {//1表示左上的一部分2表示右半部分
30                 for (int j2 = middle-4-2*i; j2 <=middle; j2++) {
31                     if(j2!=middle-4-2*i && j2!=middle-3-2*i&&j==middle-4-2*i)
32                     {
33                         array[j][j2]='$';//1
34                         array[j][m-j2+1]='$';//2
35                     }
36                     if(j!=middle-4-2*i && j!=middle-3-2*i&&j2==middle-4-2*i) {
37                         array[j][j2]='$';//1
38                         array[j][m-j2+1]='$';//2
39                     }
40                     if((j==middle-4-2*i || j==middle-3-2*i || j==middle-2-2*i)&&j2==middle-2-2*i) {
41                         array[j][j2]='$';//1
42                         array[j][m-j2+1]='$';//2
43                     }
44                     if((j2==middle-4-2*i || j2==middle-3-2*i || j2==middle-2-2*i)&&j==middle-2-2*i) {
45                         array[j][j2]='$';//1
46                         array[j][m-j2+1]='$';//2
47                     }
48                 }
49             }
50             
51           }
52            for (int i = 1; i <= m/2; i++) {//扩展为全部。
53             for (int j = 1; j <= m; j++) {
54                 array[m+1-i][j]=array[i][j];
55             }
56         }
57            for (int i = 1; i <=m; i++) {
58                for (int j = 1; j <=m; j++) {
59                    System.out.print(array[i][j]);
60                }
61                System.out.println();
62            }
63        }
64  }

 

转载于:https://www.cnblogs.com/henuliulei/p/10423749.html

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

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

相关文章

Spring BeanDefinition

BeanDefinition&#xff0c;顾名思义&#xff0c;是一个对象(Bean)在Spring中描述&#xff0c;其核心类图&#xff1a; 从类图我们详细了解BeanDefinition。 BeanDefinition接口继承自BeanMetadataElement和AttributeAccessor两个接口。 BeanMetadataElement&#xff1a;bean…

乐尚网络:小程序商城零售行业10大新赋能

微信小程序上线以来&#xff0c;各行各业积极入场小程序&#xff0c;着手打造属于自己的小程序生态。小程序形态多样&#xff0c;适合你的小程序才是最好的&#xff1b;在众多形态中&#xff0c;小程序商城可以说是零售行业的主体形态了&#xff0c;因为通过平台直接实现交易是…

深度学习中的正则化

正则化方法有如下几种&#xff1a; 一、参数范数惩罚 其中L2、L1参数正则化介绍与关系如下 1、L2 参数正则化 直观解释如下&#xff1a; 2、L1 参数正则化 二、获取更多数据&#xff08;扩样本&#xff09; 避免过拟合的基本方法之一是从数据源获得更多数据&#xff0c;当训练数…

spring uml

spring执行流程&#xff1a; 1&#xff1a; 加载spring.xml文件 2&#xff1a; 创建xml文件解析器 3&#xff1a; 获取命名空间&#xff0c;即在spring.xml文件中的 http://www.springframework.org/schema/context 4&#xff1a; 根据命名空间找到命名空间处理器&#xff0c;在…

「造个轮子」——cicada(轻量级 WEB 框架)

前言 俗话说 「不要重复造轮子」&#xff0c;关于是否有必要不再本次讨论范围。 创建这个项目的主要目的还是提升自己&#xff0c;看看和知名类开源项目的差距以及学习优秀的开源方式。 好了&#xff0c;现在着重来谈谈 cicada 这个项目的核心功能。 我把他定义为一个快速、轻量…

基于owncloud构建私有云储存网盘

注意事项&#xff1a;需要ping通外网 需要LAMP架构yum -y install httpd php php-mysql mariadb-server mariadb sqlite php-dom php-mbstring php-gd php-pdo 开启服务[rootowncloud ~]# setenforce 0setenforce: SELinux is disabled[rootowncloud ~]# systemctl stop firewa…

Spring 源码分析之AbstractApplicationContext源码分析

首先我觉得分析ApplicationContext必须从它的实现类开始进行分析&#xff0c;AbstractApplicationContext我觉得是一个不错的选择&#xff0c;那我们就从这里开始逐一分析吧&#xff0c;首先我自己手画了一张图&#xff0c;作为索引吧&#xff0c;其中蓝色的为类&#xff0c;紫…

Spring中资源的加载ResourceLoader

Spring中资源的加载是定义在ResourceLoader接口中的&#xff0c;它跟前面提到的抽象资源的关系如下&#xff1a; ResourceLoader的源码 public interface ResourceLoader { /** Pseudo URL prefix for loading from the class path: "classpath:" */ String CLAS…

Codeforces Round #540 (Div. 3)(部分题解)

链接:http://codeforces.com/contest/1118 来源:Codeforces 文章目录A. Water BuyingB. Tanya and Candies(前缀和)D1. Coffee and Coursework (Easy version)(贪心)D2. Coffee and Coursework (Hard Version)(二分)A. Water Buying 题意:用最小的花费买到刚好合适的东西.我们可…

java项目中的classpath

在java项目中&#xff0c;你一定碰到过classpath&#xff0c;通常情况下&#xff0c;我们是用它来指定配置/资源文件的路径。在刚开始学习的时候&#xff0c;自己也糊里糊涂&#xff0c;但是现在&#xff0c;是时候弄清楚它到底是指什么了。 顾名思义&#xff0c;classpath就是…

Class.getResource和ClassLoader.getResource

一案例驱动 二源码分析 三类加载器ClassLoader 四总结 五参考 一案例驱动 最近加载文件的时候遇到了一个问题&#xff0c;很有意思&#xff01; 具体看下面案例代码 public class TestClassLoader {public static void main(String[] args) {System.out.println(TestClassLoad…

spring-6、动态代理(cglib 与 JDK)

JDK动态代理与Cglib动态代理 JDK动态代理: 1.能够继承静态代理的全部优点.并且能够实现代码的复用.2.动态代理可以处理一类业务.只要满足条件 都可以通过代理对象进行处理.3.动态代理的灵活性不强.4.JDK 的动态代理要求代理者必须实现接口, , 否则不能生成代理对象. . 1 packag…

JDK安装与配置(Windows 7系统)

1.前言 安装之前需弄清JDK、JRE、JVM这几个概念&#xff0c;不然稀里糊涂不知道自己在装什么。 &#xff08;1&#xff09;什么是java环境&#xff1a;我们知道&#xff0c;想听音乐就要安装音乐播放器&#xff0c;想看图片需要安装图片浏览器&#xff0c;同样道理&#xff0c;…

spring源码分析-core.io包里面的类

前些日子看《深入理解javaweb开发》时&#xff0c;看到第一章java的io流&#xff0c;发觉自己对io流真的不是很熟悉。然后看了下JDK1.7中io包的一点点代码&#xff0c;又看了org.springframework.core.io包的一些类和组织方式&#xff0c;当作是学习吧。总结一下。 先挂下spri…

对类Vue的MVVM前端库的实现

关于实现MVVM&#xff0c;网上实在是太多了&#xff0c;本文为个人总结&#xff0c;结合源码以及一些别人的实现 关于双向绑定 vue 数据劫持 订阅 - 发布ng 脏值检查backbone.js 订阅-发布(这个没有使用过&#xff0c;并不是主流的用法)双向绑定&#xff0c;从最基本的实现来说…

django的母板系统

一.母板渲染语法 1.变量 {{ 变量 }} 2.逻辑 {% 逻辑语 %} 二.变量 在母板中有变量时,母板引擎会去反向解析找到这个传来的变量,然后替换掉. .(点),在母板中是深度查询据点符,它的查询顺序: 字典 > 属性或方法 > 数字索引 三.过滤器 1.语法 {{ value|filter_name:参数}} 2…

【CSS】flex的常用布局

1、垂直居中&#xff0c;写在父级上div{display: flex;justify-content: center;align-items: center; } 2、flex-左右两端&#xff0c;垂直居中该布局在移动端较为常见<style> .wrap{display: flex;justify-content: space-between;align-items: center;width: 200px;he…

java.util.Properties

ava.util.Properties是对properties这类配置文件的映射。支持key-value类型和xml类型两种 首先&#xff0c;新建一个文件&#xff0c;如图&#xff1a; 然后再Java代码段输入如下代码&#xff1a; import java.io.FileInputStream; import java.io.InputStream; import java…

Spring-boot 打成jar包后使用外部配置文件

官网说明 第一种是在jar包的同一目录下建一个config文件夹&#xff0c;然后把配置文件放到这个文件夹下&#xff1b; 第二种是直接把配置文件放到jar包的同级目录&#xff1b; 第三种在classpath下建一个config文件夹&#xff0c;然后把配置文件放进去&#xff1b; 第四种是在c…

UI自动化之元素定位(xpath、css)

很早之前就已经写过自动化了&#xff0c;不过点着功能久了就会容易忘记元素定位&#xff0c;尤其是xpath和css定位&#xff0c;所以就花点时间做下总结收集。 xpath有两种定位&#xff1a; 一.绝对路径&#xff08;不推荐使用&#xff0c;除非已经使用了所有方式仍然无法定位&a…