历届试题 打印十字图

问题描述

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

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

对方同时也需要在电脑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;紫…

[USACO15FEB]Superbull (最小生成树)

题目链接 Solution 基本上就是个板子. 因为 \(n\) 很小,只有 \(2000\),所以直接暴力建图,然后跑最小生成树就好了. Code #include<bits/stdc.h> #define ll long long using namespace std; const int maxn2008; struct sj{int to,fr; ll w; }a[maxn*maxn]; int fa[maxn]…

Java中九大内置对象

1、Request对象 该对象封装了用户提交的信息&#xff0c;通过调用该对象相应的方法可以获取封装的信息&#xff0c;即使用该对象可以获取用户提交的信息。 当Request对象获取客户提交的汉字字符时&#xff0c;会出现乱码问题&#xff0c;必须进行特殊处理。首先&#xff0c;…

ORACLE导出导入意外终止导致 ORACLE initialization or shutdown in progress 问题解决

由于意外情况导致 ORACLE initialization or shutdown in progress 个人理解为主要是归档日志出现问题&#xff0c; 首先cmd 1.sqlplus /nolog 进入sqlplus 2.connect /as sysdba 连接dba 3.shutdown normal 卸载数据库 4.startup mount;重启例程 5.alter database open;开…

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 题意:用最小的花费买到刚好合适的东西.我们可…

集合一些方法陷阱

一&#xff1a;asList 数组转ArrayList陷阱&#xff1a; asList() 源码&#xff1a;public static <T> List<T> asList(T... a) { return new ArrayList<T>(a); } private final E[] a; ArrayList(E[] array) { if (arraynull) throw new NullPointerExcept…

java项目中的classpath

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

C++命名空间(namespace)

在c中&#xff0c;名称&#xff08;name&#xff09;可以是符号常量、变量、函数、结构、枚举、类和对象等等。工程越大&#xff0c;名称互相冲突性的可能性越大。另外使用多个厂商的类库时&#xff0c;也可能导致名称冲突。为了避免&#xff0c;在大规模程序的设计中&#xff…

P1556 幸福的路

题意&#xff1a;平面内有N头牛$N\le 10$john从&#xff08;0,0&#xff09;出发&#xff0c;最后回到(0,0) 只有走到牛那里john才可以改变方向&#xff0c;否则沿着直线走 问john经过每一头牛并且在每一头牛出恰好改变方向一次的方案&#xff08;牛可以经过多次&#xff0c;但…

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;…

UVA839

这道题又是一道递归的题目 先贴上代码 //这种没有明确说个数的动态分配还是得用new #include<cstdio> #include<iostream> using namespace std; struct mobile {int WL,DL,WR,DR;mobile *left,*right;mobile(mobile *aNULL,mobile*bNULL):left(a),right(b){} }; m…