目录
1 问题描述
*********** * * * ******* * * * * * * * *** * * * * * * * * * * *** * * * * * * * ******* * * * *********** 观察这个图形,它是由一系列正方形的星号方框嵌套而成。 在上边的例子中,最外方框的边长为11。 本题的任务就是从标准输入获得一个整数n(1<n<100) 程序则生成嵌套着的回字型星号方框。其最外层方框的边长为n 例如: 输入: 5 程序输出: ***** * * * * * * * ***** 输入:6 程序输出: ****** * * * ** * * ** * * * ******
2 解决方案
1 import java.util.Scanner; 2 3 public class Main { 4 5 public void getResult(int n) { 6 char[][] value = new char[n][n]; 7 for(int i = 0;i < n;i++) 8 for(int j = 0;j < n;j++) 9 value[i][j] = ' '; 10 for(int i = 0;i < n;i = i + 2) { 11 int start = i, end = n - i; 12 if(end < start) 13 break; 14 for(int j = start;j < end;j++) { 15 value[i][j] = '*'; 16 value[j][i] = '*'; 17 value[end - 1][j] = '*'; 18 value[j][end - 1] = '*'; 19 } 20 } 21 for(int i = 0;i < n;i++) { 22 for(int j = 0;j < n;j++) 23 System.out.print(value[i][j]); 24 System.out.println(); 25 } 26 } 27 28 public static void main(String[] args) { 29 Main test = new Main(); 30 Scanner in = new Scanner(System.in); 31 int n = in.nextInt(); 32 test.getResult(n); 33 } 34 }
运行结果:
13 ************* * * * ********* * * * * * * * ***** * * * * * * * * * * * * * * * * * * * * * * * ***** * * * * * * * ********* * * * *************