斐波纳契赛跑者代码:JAVA

时间:2014-03-13 01:14:13

标签: java

实验室描述:生成Fibonacci序列。 Fibonacci序列中的每个数字是序列中前两个数字的总和。序列中的前两个数字都是1.第三个数字是2,第四个数字是3,第五个数字是5,第六个数字是8.程序应该能够在fibo序列中返回指定的数字。如果指定的数字超出范围,则应返回-1。

我在下面完成了硬数学代码,没有错误:

public class Fibonacci
{
    int[] fibArray;
    public Fibonacci()
    {
        fibArray = new int[50];
        this.setFibo();
    }
    public void setFibo()
    {
        fibArray[0]=1;
        fibArray[1]=1;
        for(int idx = 2; idx<fibArray.length; idx++){
            fibArray[idx] = fibArray[idx-1] + fibArray[idx-2];
        }
    }
    public int[] getFibo()
    {
        return fibArray;
    }
    public String toString()
    {
        return this.getFibo() + "\n";
    }
}

在我遇到麻烦的情况下:

public class FibonacciRunner
{
    public static void main(String[] args) {
        int[] fibArray = {1,2,3,4,5,6,11,16,21,31,41,46,1,1,2,1,2,11};
        Fibonacci fibo = new Fibonacci();
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());
        System.out.println(fibo.getFibo());

    }
}

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

问题有点清楚,你的实施也不清楚。如果需要从Fibonacci序列中获取特定数字,则getFibo()应返回int而不是int []。此外,getFibo应该将值/索引作为getFibo(int value)。请通过示例清楚地说明要求。您可以参考以下代码。

public int getFibo(int index)
{
    if(index < 50)
     return fibArray[index];
    else
      return -1;
}