gpt4 book ai didi

java - 这段代码如何准确地完成它需要做的事情?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:35:55 25 4
gpt4 key购买 nike

这是打印 n 等于 3 的二进制数的所有可能性的代码:

public class Main {

static void binary(int N, int[] A) {
if(N < 1)
System.out.println(Arrays.toString(A));
else
{
A[N-1] = 0;
binary(N-1,A);
A[N-1] = 1;
binary(N-1,A);
}
}

public static void main(String[] args) {
int[] a = new int[3];
binary(3,a);
}
}

代码运行良好。我可以看到有两个递归调用,但我无法理解这是如何工作的。为什么需要两次递归调用?

最佳答案

每增加一位,可能值的数量就会增加 2 倍。这意味着你有

            0        and         1        - first bit
then 00 10 and 01 11 - second bit
then 000 100 010 110 and 001 101 011 111 - third bit and so on

因此,对于每次调用,您都应该再调用两次来处理下一位的两个可能值(0 和 1)

关于java - 这段代码如何准确地完成它需要做的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41951673/

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