時間限制:1.0s 內存限制:256.0MBjava
小明爲某機構設計了一個十字型的徽標(並不是紅十字會啊),以下所示:數組
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..字體
對方同時也須要在電腦dos窗口中以字符的形式輸出該標誌,並能任意控制層數。spa
一個正整數 n (n<30) 表示要求打印圖形的層數。設計
對應包圍層數的該標誌。code
1blog
..$$$$$..
..$...$..
$$$.$.$$$
$...$...$
$.$$$$$.$
$...$...$
$$$.$.$$$
..$...$..
..$$$$$..圖片
3內存
..$$$$$$$$$$$$$..
..$...........$..
$$$.$$$$$$$$$.$$$
$...$.......$...$
$.$$$.$$$$$.$$$.$
$.$...$...$...$.$
$.$.$$$.$.$$$.$.$
$.$.$...$...$.$.$
$.$.$.$$$$$.$.$.$
$.$.$...$...$.$.$
$.$.$$$.$.$$$.$.$
$.$...$...$...$.$
$.$$$.$$$$$.$$$.$
$...$.......$...$
$$$.$$$$$$$$$.$$$
..$...........$..
..$$$$$$$$$$$$$..資源
請仔細觀察樣例,尤爲要注意句點的數量和輸出位置。
首先看到題目,臥槽,這什麼鬼圖,哪裏有十字形的徽標。傻逼同樣看着題目,看着眼睛都花了。冷靜下來想到多是字體或者大小啥的緣由致使看不清楚圖片形狀。而後作出解這個題最重要的一步:複製到記事本當中,而後修改字體。
這樣看是否是就能夠清楚的看出來規則了。而後就是找不一樣,找相同了。
相同點:中間的一個十字
不一樣點(找規律的點):外面一層一層的增長。
1 package daily_practice; 2 3 import java.util.Scanner; 4 5 public class Main{ 6 public static void main(String args[]) { 7 Scanner scan = new Scanner(System.in); 8 int n = scan.nextInt(); 9 scan.close(); 10 char[][] map = new char[5+4*n][5+4*n]; 11 12 for(int i = (5+4*n)/2 - 2; i <= (5+4*n)/2 + 2; i++) { //輸入圖像中級的+字 13 for(int j = (5+4*n)/2 - 2; j <= (5+4*n)/2 + 2; j++) { 14 if(i == (5+4*n)/2 || j == (5+4*n)/2) map[i][j] = '$'; 15 } 16 } 17 18 for(int cen = 1; cen <= n; cen++) { 19 for(int i = 0; i < 5+4*n; i++) { //由於輸出圖形徹底對稱,So只須要數組的行,就能夠用杭來表示列 20 if(i>cen*2 && i < 4+4*n - cen*2 ) { //輸出part1 21 map[i][(cen-1)*2] = '$'; 22 map[i][(4+4*n) - (cen-1)*2] = '$'; 23 map[(cen-1)*2][i] = '$'; 24 map[(4+4*n) - (cen-1)*2][i] = '$'; 25 } 26 if(i == cen*2) { //輸出part2 27 for(int m = 0; m < 3; m++) { 28 map[i][m+(cen-1)*2] = '$'; 29 map[m+(cen-1)*2][i] = '$'; 30 map[i][(4+4*n) - (m+(cen-1)*2)] = '$'; 31 map[(4+4*n) - (m+(cen-1)*2)][i] = '$'; 32 } 33 } 34 if(i == 4+4*n - cen*2) { //輸出part3 35 for(int m = 0; m < 3; m++) { 36 map[i][i+m] = '$'; 37 map[i+m][i] = '$'; 38 map[i][(cen-1)*2 + m] = '$'; 39 map[(cen-1)*2 + m][i] = '$'; 40 } 41 } 42 } 43 } 44 //輸出地圖 45 for(int i = 0; i < 5+4*n; i++) { 46 for(int j = 0; j < 5+4*n; j++) { 47 if(map[i][j] == '$') System.out.print(map[i][j]); 48 else System.out.print("."); 49 } 50 System.out.println(); 51 } 52 } 53 }