返回一串移动的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 楼答案
用^{试试看。如果你的代码输出在一个物理塔上进行了尝试,它就不起作用了
之所以只看到“递归调用的一个循环”,是因为输出显示实际上是针对
hanoi(3,1,3)
,而不是2,1,3