Java 如何计算斐波那契序列
我在下面编写了斐波那契序列的代码。我遇到的问题是,当我对JUnit测试代码运行它时,只有一个问题得到了解决。我会在下面告诉你 这是我的密码Java 如何计算斐波那契序列,java,math,Java,Math,我在下面编写了斐波那契序列的代码。我遇到的问题是,当我对JUnit测试代码运行它时,只有一个问题得到了解决。我会在下面告诉你 这是我的密码 import java.util.ArrayList; public class ResitCode { public int Fib_No(int position) { position = 10; ArrayList<Integer> a = new ArrayList<Integer>(); a.a
import java.util.ArrayList;
public class ResitCode {
public int Fib_No(int position) {
position = 10;
ArrayList<Integer> a = new ArrayList<Integer>();
a.add(0);
a.add(1);
System.out.println(position);
for (int i = 1; i <= position; ++i) {
System.out.println(a.get(0) + " ");
int sumofBoth = a.get(0) + a.get(1);
int a1 = a.get(0);
int a2 = a.get(1);
a1 = a2;
a2 = sumofBoth;
}
return 0 ;
}
当我针对这个问题运行它时,只有一个问题得到了解决,如果有人能告诉我我做错了什么,以及如何让它通过所有测试,我将不胜感激。
我想你一定要这样做。你的循环什么也没做
int a = 0, b=1, c;
System.out.println(position);
for (int i = 1; i <= position; ++i) {
System.out.println(a + " ");
c=a+b;
a=b;
b=c;
}
inta=0,b=1,c;
系统输出打印项次(位置);
对于(int i=1;i而言,Fib\u No
函数中有两个错误:
1) 您不返回结果。将返回0
替换为返回a.get(1)
2) 在for循环中,您处理的是临时变量,而不是引用。因此,在循环内完成的赋值没有效果。要替换以前的值,请使用:
int sumofBoth = a.get(0) + a.get(1);
a.set(0,a.get(1));
a.set(1,sumofBoth);
注意:由于您只处理两个整数,因此使用列表结构会使代码更慢,更难阅读。考虑使用两个变量<代码> int a=0;int b=1代码>很好。。代码中只有一个return语句:return0代码>。除了0
,它将如何返回任何内容?@GBlodgett是的,你是对的,那是个错误。
int sumofBoth = a.get(0) + a.get(1);
a.set(0,a.get(1));
a.set(1,sumofBoth);