打印十字图(PRE-2)
(存疑)
题目描述
小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:
样例输入1
1
样例输出1
样例输入2
3
样例输出2
提示
请仔细观察样例,尤其要注意句点的数量和输出位置。
import java.util.Scanner;
public class Main {
public static void main(String []args) {
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();//打印图形的层数
getResult(n);
scan.close();
}
private static void getResult(int n) {
int len=5+4*n;
int mid=len/2;
char res[][]=new char[len][len];
//初始化全部为。
for(int i=0;i<len;i++) {
for(int j=0;j<len;j++){
res[i][j]='.';
}
}
for(int i=mid-2;i<=mid+2;i++) {
res[mid][i]='$';
res[i][mid]='$';
}
for(int i=1;i<=n;i++) {
for(int j=mid-2*i;j<=mid+2*i;j++) {
res[mid-2*(i+1)][j]='$';
res[mid+2*(i+1)][j]='$';
res[j][mid-2*(i+1)]='$';
res[j][mid+2*(i+1)]='$';
}
res[mid-2*i][mid-2*i]='$';
res[mid-2*i][mid-2*i-1]='$';
res[mid-2*i-1][mid-2*i]='$';
//右上角
res[mid-2*i][mid + 2*i]='$';
res[mid-2*i-1][mid+2*i]='$';
res[mid-2*i][mid+2*i+1]='$';
//左下角
res[mid+2*i][mid-2*i]='$';
res[mid+2*i][mid-2*i-1]='$';
res[mid+2*i + 1][mid-2*i]='$';
//右下角
res[mid+2*i][mid+2*i]='$';
res[mid+2*i][mid+2*i+1]='$';
res[mid+2*i+1][mid+2*i]='$';
}
for(int i=0;i<len;i++) {
for(int j=0;j<len;j++) {
System.out.print(res[i][j]);
}
System.out.println();
}
}
}