package com.lanqiaobei.dati_01;
/*
***********
* *
* ******* *
* * * *
* * *** * *
* * * * * *
* * *** * *
* * * *
* ******* *
* *
***********
观察这个图形,它是由一系列正方形的星号方框嵌套而成。
在上边的例子中,最外方框的边长为11。
本题的任务就是从标准输入获得一个整数n(1<n<100)
程序则生成嵌套着的回字型星号方框。其最外层方框的边长为n
例如:
输入:
5
程序输出:
*****
* *
* * *
* *
*****
输入:6
程序输出:
******
* *
* ** *
* ** *
* *
******
*/
public class HuiXingQianTao {
/**
* @param args
* @author wildcat
*/
public static String list[][] ;
public static void main(String[] args) {
// TODO Auto-generated method stub
int tal=23;
int start=0;
list=new String[tal][tal];
//当总个数大于等于1时调用函数
while(tal>=1){
addArray(tal,start);
tal-=4; //总个数减4
start+=2; //起始位置加2
}
myPrint(list);
}
//填充数组函数,tal表示总个数,start表示起始位置
public static void addArray(int tal,int start){
for (int i=start;i<tal+start;i++){ //i是行,j是列
for (int j=start;j<start+tal;j++){
if(i==start||i==start+tal-1){
list[i][j]="*";
}else if(j==start+tal-1||j==start){
list[i][j]="*";
}else{
list[i][j]=" ";
}
}
}
}
//遍历输出函数
public static void myPrint(String list[][]){
for (int i=0;i<list.length;i++){
for(int j=0;j<list.length;j++){
System.out.print(list[i][j]);
}
System.out.println();
}
}
}
运行结果如下: