通过给定正数,使用Recursion在java中构建2d数组

通过给定正数,使用Recursion在java中构建2d数组,java,recursion,multidimensional-array,Java,Recursion,Multidimensional Array,我有一个程序,它通过给出一个正数来构建2d数组,并以递归方式显示结果,如以下示例所示: n=6…其中n为正n号 结果将显示此二维阵列: 0 10 2110 31210 432110 543210 谁能帮我得到这个结果 这是我的代码,我从以下代码开始: public class positiveNumber{ public static void main(String[] args){ for(int i = 0 i<= 6 i++){ { for(int j =

我有一个程序,它通过给出一个正数来构建2d数组,并以递归方式显示结果,如以下示例所示:

n=6…其中n为正n号

结果将显示此二维阵列:

0

10

2110

31210

432110

543210

谁能帮我得到这个结果

这是我的代码,我从以下代码开始:

public class positiveNumber{

 public static void main(String[] args){

   for(int i = 0 i<= 6 i++){
   {
    for(int j = 0 j <= 6 j++){

      if(i == j){

     {

    }

   }

 }

}

尝试在列表中添加数字,并在每次迭代中按相反顺序打印列表

public class positiveNumber{

 public static void main(String[] args){
      int n= taking Input from user;
      List<Integer> listOfNumbers=new ArrayList<Integer>();
   for(int i = 0 ; i< n ; i++){
          listOfNumbers.add(i);
          printListInReverse(listOfNumbers);
   }
}
public static void printListInReverse(List<Integer>listOfNumbers){
       List temp = new ArrayList(listOfNumbers);
       Collections.reverse(temp);
       System.out.println(temp); //either iterate the list or print in once
}
}
如果要删除这些[]方括号,则不要直接打印列表,而是使用迭代器对列表进行迭代器,然后打印列表中的每个元素

更新

使用递归的同一程序

尝试以下方法:

public static void main(String args[]) {
    int[][] numbers = new int[6][6];
    displayPyramid(6, numbers);
    System.out.println("2d array is");
    for (int i = 0; i < 6; i++)
        System.out.println(Arrays.toString(numbers[i]));
}

private static void displayPyramid(int next, int[][] numbers) {
    if (next == 0) {
        return;
    }
    StringBuilder sb = new StringBuilder();
    for (int i = numbers[0].length - next, k = 0; i >= 0; i--) {
        numbers[numbers[0].length - next][k++] = i;
        sb.append(i);
        sb.append(" ");
    }
    System.out.println(sb);
    displayPyramid(next - 1, numbers);
}

Output:  
0 
1 0 
2 1 0 
3 2 1 0 
4 3 2 1 0 
5 4 3 2 1 0 
2d array is
[0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0]
[2, 1, 0, 0, 0, 0]
[3, 2, 1, 0, 0, 0]
[4, 3, 2, 1, 0, 0]
[5, 4, 3, 2, 1, 0]

这就是我想要的结果,但我认为我可能需要使用递归方式或2 for loop检查更新的递归程序
public class positiveNumber{
    static List<Integer> listOfNumbers=new ArrayList<Integer>();
    static int n;

     public static void main(String[] args){
           n= "take input fmo user"
           print(0);
    }
    /*
     *Using Recursion
     */
    public static void print(int i){
              if(i==n)
                 return;
              listOfNumbers.add(i);
              printListInReverse();
              print(i+1);
        }

    public static void printListInReverse(){
           List temp = new ArrayList(listOfNumbers);
           Collections.reverse(temp);
           System.out.println(temp); //either iterate the list or print in once
    }
    }
public static void main(String args[]) {
    int[][] numbers = new int[6][6];
    displayPyramid(6, numbers);
    System.out.println("2d array is");
    for (int i = 0; i < 6; i++)
        System.out.println(Arrays.toString(numbers[i]));
}

private static void displayPyramid(int next, int[][] numbers) {
    if (next == 0) {
        return;
    }
    StringBuilder sb = new StringBuilder();
    for (int i = numbers[0].length - next, k = 0; i >= 0; i--) {
        numbers[numbers[0].length - next][k++] = i;
        sb.append(i);
        sb.append(" ");
    }
    System.out.println(sb);
    displayPyramid(next - 1, numbers);
}

Output:  
0 
1 0 
2 1 0 
3 2 1 0 
4 3 2 1 0 
5 4 3 2 1 0 
2d array is
[0, 0, 0, 0, 0, 0]
[1, 0, 0, 0, 0, 0]
[2, 1, 0, 0, 0, 0]
[3, 2, 1, 0, 0, 0]
[4, 3, 2, 1, 0, 0]
[5, 4, 3, 2, 1, 0]