gpt4 book ai didi

java - 从方法中删除尾递归 (Java)

转载 作者:行者123 更新时间:2023-12-01 06:07:53 26 4
gpt4 key购买 nike

我有这个方法:

    private String computePerm(int iteration) {
if (iteration < n + 1) {
return Character.toString((char) (iteration + 48));
} else {
if (iteration % n == 0) {
return computePerm((iteration / n) - 1) + computePerm(((iteration - 1) % n + 1));
} else {
return computePerm(iteration / n) + computePerm(iteration % n);
}
}
}

它计算由单个广度优先搜索遍历引起的排列。我用它来解决 Post's correspondence problem 。然而,我怀疑它是尾递归的,并且它似乎在问题的某些实例上产生了丑陋的开销。

如何在保留方法行为的同时删除尾递归?

最佳答案

这就是你所追求的(大小n的字母表的排列):

private static String computePerm(int iteration) {
return Integer.toString(iteration, n);
}

关于java - 从方法中删除尾递归 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40754704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com