使用for循环java的Fibbonacci序列
有人能告诉我如何存储前两个Fibbonaci号码吗?这对解决这个问题很有帮助使用for循环java的Fibbonacci序列,java,Java,有人能告诉我如何存储前两个Fibbonaci号码吗?这对解决这个问题很有帮助 public static void main(String[] args) { int k = 0; for (int x = 1; x < 13; x++) { if (k > 2) { k = (k - 1) + (k - 2); } System.out.print(k+" "); k++;
public static void main(String[] args) {
int k = 0;
for (int x = 1; x < 13; x++) {
if (k > 2) {
k = (k - 1) + (k - 2);
}
System.out.print(k+" ");
k++;
}
}
当你得到数字5作为打印输出时,你将设置k++,这将使k=6。 之后k=k-1+k-2;输出k=6-1+6-2=5+4=9,注意:下一个应该是8,因此您的算法是错误的 你误解了斐波那契数的概念 第n个斐波那契数等于前两个斐波那契数之和。不适用于Fn-1+Fn-2 编辑: 如你所见,如果我们知道前两个斐波那契数,我们可以把这两个加起来计算第三个。第四个是第二个和第三个的总和。。。。。致 好的,这里有一种方法,你不需要递归的方法,你需要把找到的斐波那契数存储在一个数组中 好的,假设你想找到前n个斐波那契数。然后创建一个大小为n的数组,并将第一个和第二个元素设置为1,因为前两个斐波那契数分别为1和1。现在从2到n循环遍历数组。在每次迭代中,将前两个元素添加到下一个元素。 检查代码。你会发现这很容易做到
public static void fib(int n){
int Fibonacci [] = new int[n];
Fibonacci [0]=1;
Fibonacci [1]=1;
for (int i = 2; i < n; i++) {
Fibonacci [i]=Fibonacci [i-1]+Fibonacci [i-2];
}
System.out.println(Arrays.toString(Fibonacci ));
}
您的代码所需要的东西很难被描述为修复。它需要重新思考和重写,从零开始,就像一个解决方案的尝试。使用两个变量来存储前面的斐波那契数。我不同意这个问题是不清楚的。这是个好问题吗?嗯,这就是投反对票的原因。但这并不一定不清楚。@Makoto你认为它不应该被关闭,还是因为错误的原因被关闭?经常遇到这样的问题,你会不知所措,不知道该把它放在什么地方。“对我来说太宽泛了。”@MarkoTopolnik:我想避免在这里就这个问题进行冗长的辩论——我可能稍后会在Meta上发布一些关于它的内容——但我想说的是,这个问题不一定需要结束。这可能会导致否决票——我并不反对这一点——但不会导致终结。因为一个人不知道该使用哪一个而强行给出一个关闭理由,充其量是对关闭系统的滥用。我如何存储前两个fibonnacci编号,然后将它们相加。非常感谢您的帮助,我对编码还比较陌生。@highschoolcoder查看编辑后的答案