实验室描述:生成斐波那契序列。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());
}
}任何帮助都是非常感谢的!
发布于 2014-03-13 09:42:27
问题很清楚,你的实现也不清楚。如果需要从斐波那契数列中获取一个特定的数字,则getFibo()应该返回int,而不是int[]。此外,getFibo应采用getFibo(整数值)中的值/索引。请明确说明要求,并举例说明。你可以参考下面的代码。
public int getFibo(int index)
{
if(index < 50)
return fibArray[index];
else
return -1;
}https://stackoverflow.com/questions/22367227
复制相似问题