java中的斐波那契程序

时间:2015-10-05 23:16:55

标签: java

public class Fibannoci {


    static int fibo(int fir,int sec){
        int res=0;

        int i=0;
        while(i<10){

            res=fir+sec;
            i++;
            fibo(sec,res);
        }


        return res;
    }



    public static void main(String[] args) {
        // TODO Auto-generated method stub


        System.out.println(fibo(1,1));

    }

}

这是我的斐波那契计划。我正在尝试打印出第10位的数字。我不想在网上看到别人的代码。我想尝试自己并改进这些代码,以便获得理解。请告诉我如何编辑这个,以便获得前10个数字的fibo系列

2 个答案:

答案 0 :(得分:0)

以下是一些需要解决的问题:

  • 您的print语句只有一个值。这意味着您的fibo方法需要返回一个数字列表,而不是一个int。尝试返回List<Integer>

  • 您正在递归地呼叫fibo,但对呼叫结果一无所知。

  • 如果要返回固定数量的元素,则没有太多理由以递归方式调用它。在这种情况下,迭代可能更简单。

  • 习惯使用更好的变量名。使用现代IDE,没有理由使用像“sec”这样的缩写词,这些缩写词含糊不清,难以让读者立即理解。

答案 1 :(得分:0)

对于你的程序,你不需要第一个或第二个参数,你只需要一个变量n来让你想要重复Fibonacci序列的次数,那么你应该只是递归调用方法,最终案例为if (n==0) return 0;if (n==1) return 1;代码如下,如果您想查看一下。希望这有帮助!

public int fibonacci(int n)  {
    if(n == 0)
        return 0;
    else if(n == 1)
      return 1;
    else
      return fibonacci(n - 1) + fibonacci(n - 2);
}