转载

[Java] 蓝桥杯PREV-2 历届试题 打印十字图

问题描述

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

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

..$………..$..

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

$…$…….$…$

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

$.$…$…$…$.$

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

$.$.$…$…$.$.$

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

$.$.$…$…$.$.$

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

$.$…$…$…$.$

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

$…$…….$…$

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

..$………..$..

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

输入格式

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

输出格式

对应包围层数的该标志。

样例输入1

1

样例输出1

..$$$$$..

..$…$..

$$$.$.$$$

$…$…$

$.$$$$$.$

$…$…$

$$$.$.$$$

..$…$..

样例输入2

3

样例输出2

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

..$………..$..

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

$…$…….$…$

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

$.$…$…$…$.$

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

$.$.$…$…$.$.$

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

$.$.$…$…$.$.$

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

$.$…$…$…$.$

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

$…$…….$…$

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

..$………..$..

提示

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

package prev2;
 
import java.util.Scanner;
 
public class Main {
 
    public static char[][] symbol = null;
 
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int l = n * 4 + 5;
        in.close();
        symbol = new char[l][l];
        print(n, 0, 0, l, l);
    }
 
    public static void print(int n, int srow, int scol, int erow, int ecol) {
        for (int i = srow; i < erow; i++) {
            for (int j = scol; j < ecol; j++) {
                if ((i == srow || i == erow) && j >= scol + 2 && j < ecol - 2) {
                    symbol[i][j] = '$';
                } else if ((j == scol || j == ecol) && i >= srow + 2 && j < erow - 2) {
                    symbol[i][j] = '$';
                } else {
                    symbol[i][j] = '.';
                }
            }
        }
 
        System.out.println(symbol);
    }
}
❤❤点击这里 -> 订阅PAT、蓝桥杯、GPLT天梯赛、LeetCode题解离线版❤❤ [Java] 蓝桥杯PREV-2 历届试题 打印十字图
原文  https://www.liuchuo.net/archives/7124
正文到此结束
Loading...