试题 算法提高 套正方形
问题描述
给定正方形边长width,如图按规律输出层层嵌套的正方形图形。
注意,为让选手方便观看,下图和样例输出均使用“”代替空格,请选手输出的时候使用空格而不是“”。
width=6:
******
*____*
*_**_*
*_**_*
*____*
******
输入格式
仅一行一个整数width。
输出格式
按规律输出图形,不要输出多余空格。
样例输入
10
样例输出
**********
*________*
*_******_*
*_*____*_*
*_*_**_*_*
*_*_**_*_*
*_*____*_*
*_******_*
*________*
**********
数据规模和约定
width满足width=4n+2,n为正整数。
且width<=50。
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.close();
String[] strs =new String[n/2];
char[] s = new char[n];
for (int i=0;i<n;i++){
s[i]='*';
}
strs[0]=new String(s);
System.out.println(strs[0]);
int start=1,end=n-2;
for(int i=1;i<n/2;i++){
for (int j=start;j<=end;j++){
if ((i & 1) == 1){
s[j]=' ';
}else{
s[j]='*';
}
}
start++;end--;
strs[i]=new String(s);
System.out.println(strs[i]);
}
for (int i=n/2-1;i>=0;i--){
System.out.println(strs[i]);
}
}
}