java - 使用递归对二维数组中的整数求和?

标签 java arrays recursion multidimensional-array

我需要一些帮助来解决这个问题。我必须使用递归对二维数组中的所有整数求和。以下是我自己设法做到的,但我被卡住了。此代码生成总和 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/

相关文章:

java - 如何消除jfreechart上的标点符号

java - tomcat(一个 JVM)中的每个 webapp 使用不同的 keystore

java - Intellij 无法识别我在 Gradle 中的 Java 应用程序?

java - ImageIO 无法正确解析有效的 .png?

c - 二叉树的后序/预序遍历

深度优先算法顺序中的java递归。越来越深的getAccumulated值

PHP - RecursiveArrayIterator 在除最后一级之外的所有级别上递归

java - 为什么我在这里得到不同的结果?

javascript - 在Javascript中将JSON字符串转换为JSON对象数组

c++ - 在类的私有(private)部分声明数组