/* (程序头部注释开始)

* 程序的版权和版本声明部分

* Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生

* All rights reserved.

* 文件名称: 蓝桥杯赛题

* 作    者:   彭俊豪

* 完成日期:   2016   年 04月 01日

* 版 本 号:      001

* 对任务及求解方法的描述部分

* 问题描述:

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

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

为了能准确比对空白的数量,程序要求对行中的空白以句点(.)代替。

* 输入描述:   标准输入输出

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

* 程序头部的注释结束

*/

上代码:

import java.util.Scanner;

  public class Main {

    public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
      int n = sc.nextInt();
      int length = 4*n+5;
      int zx = length/2;
      String arr[][] = new String[length][length];

      for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr.length; j++) {
          arr[i][j] = ".";
        }
      }

      for (int i = zx-2; i < zx+3; i++) {
        arr[i][zx] = "$";
        arr[zx][i] = "$";
      }

    //控制外圈的循环次数,重点!!!
      for (int m = 0; m < n; m++) {

        for (int i = zx-(2+m*2); i <= zx+2+2*m; i++) {
          arr[zx-(4+m*2)][i] = "$";
          arr[zx+4+m*2][i] = "$";
          arr[i][zx-(4+m*2)] = "$";
          arr[i][zx+4+m*2] = "$";
        }

        for (int i = 1; i <= zx-(2*m+2); i++) {
          arr[zx-(2*m+2)][i] = "$";
          arr[zx+2+2*m][i] = "$";
          arr[i][zx-(2*m+2)] = "$";
          arr[i][zx+2+2*m] = "$";
        }

        for (int i = zx+2*m+2; i <= arr.length-1; i++) {
          arr[zx+2*m+2][i] = "$";
          arr[zx-2-2*m][i] = "$";
          arr[i][zx+2*m+2] = "$";
          arr[i][zx-2-2*m] = "$";
        }

      //消除多余出来的$
      for (int i = zx-m*2; i < zx+m*2; i++) {
        arr[zx-(3+m*2)][i] = ".";
        arr[zx-(3+m*2)][i] = ".";
        arr[zx+3+m*2][i] = ".";
        arr[zx+3+m*2][i] = ".";
        arr[i][zx-(3+m*2)] = ".";
        arr[i][zx-(3+m*2)] = ".";
        arr[i][zx+3+m*2] = ".";
        arr[i][zx+3+m*2] = ".";
      }
    }

      for (int i = 0; i < arr.length; i++) {
        for (int j = 0; j < arr.length; j++) {
          System.out.print(arr[i][j]);
        }
      System.out.println();
    }
  }

}

蓝桥杯-打印十字图-java的更多相关文章

  1. java实现 历届试题 蓝桥杯 打印十字图

    历届试题 打印十字图 题目描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可参见p1.jpg) 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并能任意控制层数. 为了能 ...

  2. 打印十字图 JAVA 递归实现

    这个是我自己想的,头疼了一个下午,不过还好.做出来了.在网上找这道题但没有找到用递归的做法. /*递归思想实现 * 标题:打印十字图 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示(可 ...

  3. 算法笔记_198:历届试题 打印十字图(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: ..$$$$$$$$$$$$$....$...........$..$$ ...

  4. 蓝桥杯 历届试题 PREV-2 打印十字图

    历届试题 打印十字图   时间限制:1.0s   内存限制:256.0MB 小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示: 对方同时也需要在电脑dos窗口中以字符的形式输出该标志,并 ...

  5. 算法笔记_052:蓝桥杯练习Multithreading(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 问题描述 现有如下一个算法: repeat ni times yi := y y := yi+1 end repeat 令n[1]为你需要算加法的第 ...

  6. PREV-2_蓝桥杯_打印十字图

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

  7. java实现第六届蓝桥杯打印大X

    打印大X 打印大X 小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度. 为了便于比对空格,所有的空白位置都以句点符来代替. 要求输入两个整数m n,表示笔的宽度,X的高度.用 ...

  8. Java实现蓝桥杯打印图形

    标题:打印图形 如下的程序会在控制台绘制分形图(就是整体与局部自相似的图形). 当n=1,2,3的时候,输出如下: 请仔细分析程序,并填写划线部分缺少的代码. n=1时: o ooo o n=2时: ...

  9. Java实现第九届蓝桥杯打印大X

    打印大X 题目描述 如下的程序目的是在控制台打印输出大X. 可以控制两个参数:图形的高度,以及笔宽. 用程序中的测试数据输出效果: (如果显示有问题,可以参看p1.png) 高度=15, 笔宽=3 * ...

随机推荐

  1. JAVA基础知识(1)

    1.JAVA的三大体系:JME(微缩版),JSE(标准版),JEE(企业版): 2.JAVA的三大核心机制:JAVA虚拟机,垃圾回收机制,代码安全性检测 3.java开发集JDK 4.java编译器j ...

  2. [SQL] SQL 基础知识梳理(七)- 集合运算

    SQL 基础知识梳理(七)- 集合运算 目录 表的加减法 联结(以列为单位) 一.表的加减法 1.集合:记录的集合(表.视图和查询的执行结果). 2.UNION(并集):表的加法 -- DDL:创建表 ...

  3. css 层叠式样式表

    内联样式:样式优先级最高的 <div style="width:100px;height:100px;"></div> style=“” 用冒号和分号 wi ...

  4. Win10下 VS2017 安装失败 未能安装包“Microsoft.VisualStudio.AspNet45.Feature,version=15.0.26208.0”

    事情的起因是这样的,前段时间,VS2017发布当天,想在自己的Win10上安装VS2017,然而,由于自己的系统很久没有更新(PS:自己关闭了Windows更新). 安装提示:未能安装包“Micros ...

  5. WebX框架学习笔记之二----框架搭建及请求的发起和处理

    框架搭建 执行环境:windows.maven 执行步骤: 1.新建一个目录,例如:D:\workspace.注意在盘符目录下是无法执行成功的. 2.执行如下命令: mvn archetype:gen ...

  6. iOS开发之单例模式

    1.概述 单例模式是一种常用的软件设计模式,通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源. 如果希望系统中某个类的对象只能存在一个,单例模 ...

  7. git工具使用方法及常用命令

    git下载地址:https://git-for-windows.github.io/git环境变量配置:增加:GIT_HOME = C:\Git (文件夹为git软件的安装文件夹)Path添加: %G ...

  8. Redis + keepalived 高可用群集搭建

    本次实验环境介绍: 操作系统: Centos 7.3 IP : 192.168.10.10 Centos 7.3 IP : 192.168.10.20  VIP    地址   : 192.168.1 ...

  9. iOS 中的单例设计模式

    单例设计模式:在它的核心结构中只包含一个被称为单例类的特殊类.例如文件管理中的NSUserDefault,应用程序中的UIApplication,整个应用程序就这一个单例类,负责应用程序的一些操作,单 ...

  10. 【Spring】详解Spring中Bean的加载

    之前写过bean的解析,这篇来讲讲bean的加载,加载要比bean的解析复杂些,该文之前在小编原文中有发表过,要看原文的可以直接点击原文查看,从之前的例子开始,Spring中加载一个bean的方式: ...