在java中添加Fibonacci奇数序列

时间:2015-02-17 01:06:23

标签: java arrays fibonacci

我想添加所有奇数:System.out.print(store + " "); 如果您有任何建议,请帮助我。

import java.util.stream.IntStream;

public class Fibonacci {

    public static void main(String a[]) {

        int Fibcnt = 25;
        int[] feb = new int[Fibcnt];
        feb[0] = 0;
        feb[1] = 1;
        for (int i = 2; i < Fibcnt; i++) {
            feb[i] = feb[i - 1] + feb[i - 2];
        }

        for (int i = 0; i < febCount; i++) {
            int store = feb[i];
            if (store % 2 == 1) {
                System.out.print(store + " ");
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您的代码唯一的问题是您在febCount循环中使用了未定义的变量名for。如果你改成它,应该可以正常工作:

for (int i = 0; i < Fibcnt; i++) {

答案 1 :(得分:0)

你的意思是你想要计算所有奇数的总和吗?

首先,您尚未声明并初始化febCount,因此您需要解决此问题。在这种情况下,febCountFibcnt相同,但您可以使用feb.length代替。

public class Fibonacci {

    public static void main(String a[]) {
        int Fibcnt = 25;
        int[] feb = new int[Fibcnt];
        feb[0] = 0;
        feb[1] = 1;
        for (int i = 2; i < Fibcnt; i++) {
            feb[i] = feb[i - 1] + feb[i - 2];
        }

        int sum_odd = 0;

        for (int i = 0; i < feb.length; i++) {
            if (feb[i] % 2 == 1) {
                sum_odd += feb[i];
                System.out.print(feb[i] + " ");
            }
        }
        System.out.println();
        System.out.println("Total of odd numbers: " + sum_odd);
    }
}

此代码的输出为:

1 1 3 5 13 21 55 89 233 377 987 1597 4181 6765 17711 28657 
Total of odd numbers: 60696

看起来你打算用IntStream来执行求和,在这种情况下可以使用这样的东西来执行计算,但是,它不会像你的代码一样打印奇数值: / p>

int sum_odd = IntStream.of(feb).filter(i -> i%2==1).sum();