有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

返回一串移动的java递归函数

大家好,我开始做递归,我不得不说这让我很困惑。 目前我正在河内的塔楼上工作:

public static String hanoi(int n, int startPole, int endPole) {
    String ret = new String();
    if (n == 0){
      return ""; 
    }

    int intermediatePole = 6 - startPole - endPole;

    String add3 = hanoi(n-1, startPole, intermediatePole);
    String add = startPole + "->" + endPole + "\n";

    String add2 = hanoi(n-1, intermediatePole,endPole );

    return add + add3 + add2;
}

让我头疼的是,谁会返回移动字符串,这样你就可以从hanoi(2, 1, 3)的调用中得到一个这样的输出,我的只返回递归调用的一个循环

1 - 3
1 - 2 
3 - 2 
1 - 3 
2 - 1 
2 - 3
1 - 3

共 (1) 个答案

  1. # 1 楼答案

    用^{试试看。如果你的代码输出在一个物理塔上进行了尝试,它就不起作用了
    之所以只看到“递归调用的一个循环”,是因为输出显示实际上是针对hanoi(3,1,3),而不是2,1,3