回形嵌套
题目描述:
观察这个图形,它是由一系列正方形的星号方框嵌套而成。 在上边的例子中,最外方框的边长为11。<br/> 本题的任务就是从标准输入获得一个整数n(1<n<100) 程序则生成嵌套着的回字型星号方框。其最外层方框的边长为n 例如:
输入:
5
程序输出:
*****
* *
* * *
* *
*****
输入:6
程序输出:
******
* *
* ** *
* ** *
* *
******
思路:先写出最外层的打印方式,然后按照层数打印,利用递归,找好起始位置与结束条件
public class T7 {
static int n;
static char[][] map;
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
n = in.nextInt();
map = new char[n][n];
fill(0);
show();
}
private static void show() {
// TODO Auto-generated method stub
for(char[] c : map){
for(char t : c){
System.out.print(t);
}
System.out.println();
}
}
private static void fill(int step) {
// TODO Auto-generated method stub
if(step>=n){
return;
}
for(int i = step;i < n -step;i++){
map[step][i] = '*';
map[i][step] = '*';
map[n-1-step][i] = '*';
map[i][n-1-step] = '*';
}
fill(step+2);
return;
}
}