【问题标题】:Adding Fibonacci odd sequence in java在java中添加斐波那契奇数序列
【发布时间】:2015-02-17 01:06:22
【问题描述】:

我想把所有奇数加到: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 + " ");
            }
        }
    }
}

【问题讨论】:

  • 您的代码不起作用?
  • int sum=0; 在循环外和sum += store; 在循环内

标签: java arrays fibonacci


【解决方案1】:

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

首先你还没有声明和初始化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 奇数总数:60696

您似乎打算使用IntStream 来执行求和,在这种情况下,可以使用类似的东西来执行计算,但是,它不会像您的代码那样打印奇数值:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 2010-12-20
      • 1970-01-01
      • 2020-01-18
      • 1970-01-01
      • 2015-06-05
      相关资源
      最近更新 更多