Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 螺旋菱形印花图案_Java - Fatal编程技术网

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

我目前正在尝试用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; 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