Java 螺旋菱形印花图案
我目前正在尝试用java打印下面的模式,请帮助我解决它 输入:Java 螺旋菱形印花图案,java,Java,我目前正在尝试用java打印下面的模式,请帮助我解决它 输入:3,abcdefghijklm 输出: c bjd aimke hlf g 我用星号构建菱形图案,从上面显示的菱形螺旋状阵列中粘贴打印值。公共静态无效菱形(){ public static void rhombus() { int n = 3; int size = 2 * n - 1; char[][] sol = new char[size][size]; for (int i = 0
3,abcdefghijklm
输出:
c
bjd
aimke
hlf
g
我用星号构建菱形图案,从上面显示的菱形螺旋状阵列中粘贴打印值。公共静态无效菱形(){
public static void rhombus() {
int n = 3;
int size = 2 * n - 1;
char[][] sol = new char[size][size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
sol[i][j] = ' ';
}
}
int i = size / 2;
int j = 0;
String s = "abcdefghijklmnop";
int len = s.length();
int in = 0;
int left = 0, top = 0, right = size - 1;
int bottom = size - 1;
boolean flag = false;
while (i != j) {
while (i >= top && !flag) {
sol[i][j] = s.charAt((in++) % len);
if (i == size / 2 && j == size / 2)
flag = true;
i--;
j++;
}
if (flag == true)
break;
i += 2;
top++;
left++;
while (j <= right && !flag) {
sol[i][j] = s.charAt((in++) % len);
i++;
j++;
}
j -= 2;
right--;
while (i <= bottom && !flag) {
sol[i][j] = s.charAt((in++) % len);
i++;
j--;
}
bottom--;
i -= 2;
while (j >= left && !flag) {
sol[i][j] = s.charAt((in++) % len);
i--;
j--;
}
j++;
}
sol[i][j] = s.charAt((in++) % len);
for (int a = 0; a < size; a++) {
for (int b = 0; b < size; b++) {
System.out.print(sol[a][b]);
}
System.out.println();
}
}
int n=3;
int size=2*n-1;
char[][]sol=新的char[size][size];
对于(int i=0;i=top&&!标志){
sol[i][j]=s.charAt((in++)%len);
如果(i==size/2&&j==size/2)
flag=true;
我--;
j++;
}
如果(标志==真)
打破
i+=2;
top++;
左++;
while(j