Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从查找路径的Java递归问题中添加一些内容?_Java_Recursion - Fatal编程技术网

如何从查找路径的Java递归问题中添加一些内容?

如何从查找路径的Java递归问题中添加一些内容?,java,recursion,Java,Recursion,我正在制作一个Java程序,它计算路径的数量。我希望它只向上(北)和向右(东)。我还希望它输出所采用的路径。有什么我能做的吗 import java.io.*; public class PathsRecursion { public static int countPaths(int n, int e) { int dp[][] = new int[n + 1][e + 1]; for (int i = 0; i <= n; i++) {

我正在制作一个Java程序,它计算路径的数量。我希望它只向上(北)和向右(东)。我还希望它输出所采用的路径。有什么我能做的吗

import java.io.*;

public class PathsRecursion {
    public static int countPaths(int n, int e) {
        int dp[][] = new int[n + 1][e + 1];
        for (int i = 0; i <= n; i++) {
            dp[i][0] = 1;

        }
        for (int i = 0; i <= e; i++) {
            dp[0][i] = 1;
        }
        for (int i = 1; i <= n; i++)
        for (int j = 1; j <= e; j++) {
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
        }
        return dp[n][e];
    }
    public static void main(String[] args) {
        int n = 1, e = 3;
        System.out.println("Number of Paths: " + countPaths(n, e));
    }
}
import java.io.*;
公共类路径递归{
公共静态int countpath(int n,int e){
int dp[][]=新int[n+1][e+1];

对于(int i=0;i您向dp数组添加了一个额外的行和列。它需要是
n
by
e
数组,而不是
n+1
by
e+1
数组

import java.io.*;

public class PathsRecursion {
    public static int countPaths(int n, int e) {
        int dp[][] = new int[n][e];
        for (int i = 0; i <= n; i++) {
            dp[i][0] = 1;

        }
        for (int i = 0; i <= e; i++) {
            dp[0][i] = 1;
        }
        for (int i = 1; i <= n; i++)
        for (int j = 1; j <= e; j++) {
            dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
        }
        return dp[n - 1][e - 1];
    }
    public static void main(String[] args) {
        int n = 1, e = 3;
        System.out.println("Number of Paths: " + countPaths(n, e));
    }
}
import java.io.*;
公共类路径递归{
公共静态int countpath(int n,int e){
int dp[][]=新的int[n][e];

for(int i=0;i Java和JavaScript是完全不同的语言,它们的名称中只共享“Java”,但仅此而已。为什么这不起作用?预期的输出是什么,您得到的输出是什么?我会得到一个BoundsException数组。最后,您必须访问
dp[n-1][e-1];
而不是
返回dp[n] [e];
因为0索引。