gpt4 book ai didi

Java递归代码

转载 作者:行者123 更新时间:2023-12-01 07:32:55 25 4
gpt4 key购买 nike

public class Temp {
public static void main(String[] args) {
System.out.println(recursion(1, 100));
System.out.println(recursion(4, 5));
System.out.println(recursion(99, 100));
System.out.println(recursion(100, 100));
}

public static int recursion(int m, int n) {
int number = 0;
if (m == 1) {
number = ((2 * n) - 1);
} else {
number = 2 * recursion(m - 1, n - 1);
}
return number;
}
}

当我运行这段代码时,最后两个测试返回 0,我知道它们应该是大数字,这是为什么吗?我怎样才能算出最后两个的值?

最佳答案

您遇到了算术溢出。 int 只能存储 -2^31 到 2^31-1 之间的值。要处理这么大的数字,您需要更合适的数据类型,例如 BigInteger。

关于Java递归代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15893777/

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