如何打印Fibonacci系列并在堆栈溢出发生之前停止 - JAVA

时间:2018-04-02 18:43:36

标签: java

在求职面试中,我被问到上述问题/任务。

有没有办法在溢出发生前停止系列?

起初它对我来说似乎很奇怪,我无法看到某人可以预测的方式

什么时候发生,但后来我的想法是检查当前

值< Integer.MAX_VALUE的。

你怎么看?任何人都可以建议解决我的问题吗?

先谢谢。

2 个答案:

答案 0 :(得分:0)

为Fibonacci系列编写逻辑并在存储值之前添加条件,该值将使用

检查空闲内存
Runtime.getRuntime().freeMemory();

一旦空闲内存达到零,就会打破循环。 这应该可以解决您的问题

答案 1 :(得分:0)

我认为这是一个更为理论化的问题,而非实际解决方案。

让我们将Fib方法定义为:

public static int fib(n){
    if (n<=2)
        return 1;
    return fib(n-1) + fib(n-2);

现在通过调用fib来代替n = 100,可以在堆栈中解析流异常。 如果我们如何简化堆栈的工作方式,我们实际上可以要求函数检查&#34;空间&#34;如果它等于0,则留在堆栈中并保持其值。

希望它有所帮助!