Java循环迭代问题

怎么可以让这段代码的输出翻转九十度,实现横向输出排序,纵向输出循环.
即第一行为10 9 8 7 6 5 4 3 2排序,然后每一个数字下面都是它各自的循环后的结果
.
.

public class Work10 {
    // 计算每个数是否被 2 整除,是则除以 2 输出,不是则加 1 后循环迭代
    public static void loop (int n) {
        int i = n;
        while (i > 1) {
            System.out.printf("%4d ", i);
            if (i % 2 == 0) {
                i = i / 2;
            } else {
                i = i + 1;
            }
        }
        System.out.println(); // 每次迭代后进入下一行
    }

    public static void printTable (int n) {
        for (int i = n; i > 0; i--) {
            loop(i);
        }

    }

    public static void main (String[] args) {
        //loop(10);
        printTable(10);
    }
}

这段代码的输出如下:

img

.
希望输出的结果:


 10   9   8   7   6   5   4   3   2 
  5  10   4   8   3   6   2   4   
  6   5   2   4   4   3       2
  3   6       2   2   4
  4   3               2
  2   4   
      2

那就不要直接输出,先塞进二维数组里
然后转置一下

用二维数组,否则只依靠输出语句不能实现你要的效果