通过给定正数,使用Recursion在java中构建2d数组
我有一个程序,它通过给出一个正数来构建2d数组,并以递归方式显示结果,如以下示例所示: n=6…其中n为正n号 结果将显示此二维阵列: 0 10 2110 31210 432110 543210 谁能帮我得到这个结果 这是我的代码,我从以下代码开始:通过给定正数,使用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 =
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]