我需要一些帮助来解决这个问题。我必须使用递归对二维数组中的所有整数求和。以下是我自己设法做到的,但我被卡住了。此代码生成总和 14,应为 18。
public class tablerecursion {
public static void main(String[] args) {
int[][] tabell = new int[][] { { 1, 2, 3 }, { 3, 2, 1 }, { 1, 2, 3 } };
int sum = rec(tabell, 2, 2);
System.out.println(sum);
}
static int rec(int[][] table, int n, int m) {
if (m == 0)
return table[n][0];
if (n == 0)
return table[0][m];
System.out.println("n:" + n + " m:" + m);
return rec(table, n - 1, m) + rec(table, n, m - 1);
}
}
有什么建议吗?基本情况是错误的吗?还是递归方法不对?
最佳答案
我会用两个函数来解决这个问题。首先创建一个可以递归求和单个 (1d) 数组的函数。编写一个函数,递归地对外部数组上的前一个函数求和。
请记住,table[N] 本身就是一个数组。您不必一次访问所有内容。
关于java - 使用递归对二维数组中的整数求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3688902/