蓝桥杯-打印大X-java

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

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

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

* All rights reserved.

* 文件名称: 蓝桥杯赛题                           

* 作    者:   彭俊豪               

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

* 版 本 号:      001   

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

* 问题描述:

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

要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)
要求输出一个大X

例如,用户输入:
3 9
程序应该输出:
***.....***
.***...***.
..***.***..
...*****...
....***....
...*****...
..***.***..
.***...***.
***.....***

(如有对齐问题,参看【图1.jpg】)

再例如,用户输入:
4 21
程序应该输出
****................****
.****..............****.
..****............****..
...****..........****...
....****........****....
.....****......****.....
......****....****......
.......****..****.......
........********........
.........******.........
..........****..........
.........******.........
........********........
.......****..****.......
......****....****......
.....****......****.....
....****........****....
...****..........****...
..****............****..
.****..............****.
****................****

(如有对齐问题,参看【图2.jpg】)

 

* 程序头部的注释结束

*/

上代码:

import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    int m = sc.nextInt();
    int n = sc.nextInt();

    int width = m+n-1;
    String arr[][] = new String[n][width];

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

    for (int i = 0; i < n ; i++) {
      for (int j = i; j < i+m; j++) {
        arr[i][j] = "*";
      }
    }

    for (int i = 0; i < n ; i++) {
      for (int j = width-i-m; j < width-i; j++) {
        arr[i][j] = "*";
      }
    }

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

}

原文地址:https://www.cnblogs.com/pengjunhao/p/6674121.html