gpt4 book ai didi

java - Java 中的递归 - 划分理论

转载 作者:行者123 更新时间:2023-11-30 02:42:31 24 4
gpt4 key购买 nike

我一直在试图理解下一个递归,代码不是我的,它是计算n个数字的分配理论的代码,但是它的递归,它让我感到困惑。谁能解释一下它是如何工作的,以便我最终能够理解它。谢谢。

package practicingjava;

import java.util.Scanner;

/**
* @author JVASQUEZ
*/
public class PracticingJava {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
partition(n, n, "");
}

public static void partition(int max, int n, String prefix) {
if (n == 0) {
System.out.println(prefix);
}
for (int i = Math.min(max, n); i >= 1; i--) {
partition(i, n - i, prefix + " " + i);
}
}
}

最佳答案

如果您使用输入 5 调用它,它将打印

 5
5
4 1
3 2
3 1 1
2 2 1
2 1 1 1
1 1 1 1 1

它基本上将数字分解为更小的数字当你输入 5 时,它会调用 4 和 1 的递归函数1 无法分解但它继续 4

一旦堆栈完成,它就会--所以新数字是 3 和 2

事情还在继续

关于java - Java 中的递归 - 划分理论,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41229254/

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