Java:检查数字是否属于Fibonacci序列

我应该编写一个代码来检查给定的数字是否属于Fibonacci序列.经过几个小时的努力,这就是我提出的:

public class TP2 {

    /**
     * @param args
     */

    public static boolean ehFibonacci(int n) {
        int fib1 = 0;
        int fib2 = 1;
        do {
            int saveFib1 = fib1;
            fib1 = fib2;
            fib2 = saveFib1 + fib2;
            }
        while (fib2 <= n);

        if (fib2 == n)
            return true;
        else
            return false;

    }
    public static void main(String[] args) {
        int n = 8;
        System.out.println(ehFibonacci(n));

    }
}

我一定做错了,因为它总是返回“假”.有关如何解决此问题的任何提示?

解决方法:

你在fib2< = n时继续循环,所以当你离开循环时,fib2总是> n,所以它返回false.

上一篇:Java中出现意外的负数


下一篇:java – 动态编程实现不好或HashMap慢?