【蓝桥杯】历届试题 打印十字图

历届试题 打印十字图  
时间限制:1.0s   内存限制:256.0MB
      
 
问题描述

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

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

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

输入格式
一个正整数 n (n<30) 表示要求打印图形的层数。
输出格式
对应包围层数的该标志。
样例输入1
1
样例输出1
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..
样例输入2
3
样例输出2
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
 
 
 
随便吐槽一下:这个题看了半天才明白题目的意思,汗.....
 
Java源代码:
 1 import java.util.Scanner;
 2 
 3 public class Main {
 4     public static void main(String[] args) {
 5         int n = new Scanner(System.in).nextInt();
 6         char a[][] = new char[n * 4 + 5][n * 4 + 5];
 7         for (int i = 0; i < a.length; i++) {
 8             for (int j = 0; j < a[i].length; j++) {
 9                 a[i][j] = '.';
10             }
11         }
12         int t = 0;
13         for (int i = 0; i < n; i++, t += 2) {
14             for (int j = t + 2; j < a.length - t - 2; j++) {
15                 a[t][j] = '$';
16                 a[j][t] = '$';
17                 a[a.length - t - 1][j] = '$';
18                 a[j][a.length - t - 1] = '$';
19             }
20             for (int j = t; j <= t + 2; j++) {
21                 a[j][t + 2] = '$';
22                 a[t + 2][j] = '$';
23                 a[a.length - t - 3][j] = '$';
24                 a[j][a.length - t - 3] = '$';
25             }
26             for (int j = a.length - 1 - t - 2; j <= a.length - 1 - t; j++) {
27                 a[j][t + 2] = '$';
28                 a[t + 2][j] = '$';
29                 a[a.length - 1 - t - 2][j] = '$';
30                 a[j][a.length - 1 - t - 2] = '$';
31             }
32         }
33         int m = a.length / 2;
34         for (int j = a.length / 2 - 2; j <= m + 2; j++) {
35             a[j][m] = a[m][j] = '$';
36         }
37 
38         for (int i = 0; i < a.length; i++) {
39             for (int j = 0; j < a[i].length; j++) {
40                 System.out.print(a[i][j]);
41             }
42             System.out.println();
43         }
44     }
45 }
评测点序号评测结果得分CPU使用内存使用下载评测数据
1 正确 50.00 218ms 24.33MB 输入 输出
2 正确 50.00 234ms 25.00MB 输入 输出
posted @ 2016-03-31 22:48  落枫飘飘  阅读(828)  评论(0编辑  收藏  举报