打印六芒星
打印图形
时间限制: 1.0s 内存限制: 512.0MB
【问题描述】
小明刚学习完条件语句和循环语句,并且也打印了许多图形,比如菱形或者三角形。然后他突发奇想要打印一个六芒星,果然,他用了半小时就把六芒星给打印出来了,你能比他更快吗?小明为你加油哦!
【输入格式】
输入一行包含一个整数 n。
【输出格式】
输出一个六芒星,表示满足题意的图形。
【样例输入】
3
4
【样例输出】
【评测用例规模与约定】
对于所有评测用例,1 ≤ n ≤ 20。
package 学长给我出的题;
import java.util.Scanner;
public class 六芒星阵 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个数");
while(sc.hasNext()) {
int n=sc.nextInt();
demo(n);
}
}
public static void demo(int n) {
char [][] arr=new char [(n*3-2)*2-1+(n-1)*2][(n*3-2)*2-1];
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[0].length;j++) {
arr[i][j]=' ';
}
}
for(int i=0;i<arr[0].length;i+=2) {
arr[2*n-1-1][i]='*';
arr[(n*3-2)*2-1-1][i]='*';
}
int r1=2*n-1-1,c1=0;
while(r1<arr.length&&c1<arr[0].length) {
arr[r1][c1]='*';
r1+=2;
c1+=1;
}
int r2=2*n-1-1,c2=(n*3-2)*2-1-1;
while(r2<arr.length&&c2>=0) {
arr[r2][c2]='*';
r2+=2;
c2-=1;
}
int r3=(n*3-2)*2-1-1,c3=0;
while(r3>=0&&c3<arr[0].length) {
arr[r3][c3]='*';
r3-=2;
c3+=1;
}
int r4=(n*3-2)*2-1-1,c4=(n*3-2)*2-1-1;
while(r4>=0&&c4>=0) {
arr[r4][c4]='*';
r4-=2;
c4-=1;
}
for(int i=0;i<arr.length;i++) {
for(int j=0;j<arr[0].length;j++) {
System.out.print(arr[i][j]);
}
System.out.println();
}
}
}