java - 斐波那契数字数组和元素可被 2 整除的数组的另一个副本(欧拉概率 2),交换空元素

标签 java arrays null swap

该程序查找斐波那契数列和另一组可被 2 整除的斐波那契数列。

代码问题:我无法删除第二个数组的元素,即包含零或 null 的元素。

例如,以下示例输出包含不符合 Fibinacci no 条件的零。能被 2 整除(即在欧拉 2 问题的调用下):

        Fib nos div by 2 except 0s: 
        0 2 0 0 8 0 0 34 0 0 144 0 0 610 0 0 2584 0 0 0

        The output should be:
        2 8 34 144 610 2584 

代码:

import java.util.Scanner; 

public class Fibonacci_Arrays {

    public static void main(String[] args) {
            int limit = 0;
            Scanner scan = new Scanner(System.in);
            //number of elements to generate in a series
            System.out.println("Enter how many Fibonacci numbers to generate: " + "\n");

            limit = scan.nextInt(); 

            long[] series = new long[limit]; //contains all of the Fib nos. to limit specified. 

            //create first 2 series elements
            series[0] = 0;
            series[1] = 1;

            long[] divSeries = new long[series.length]; //contains Fib nos. divisible by 2.

            //create the Fibonacci series and store it in an array
            for(int i=2; i < limit; i++){

                    series[i] = series[i-1] + series[i-2];
                    if ((series[i] % 2) == 0){
                        divSeries[i] = series[i];
                        //need to remove zero entries from the divSeries array.
                    }

            }

            //print the Fibonacci series numbers
            System.out.println("Fibonacci Series upto " + limit);
            for(int i=0; i< limit; i++){
                    System.out.print(series[i] + " ");
            }

            System.out.println(); 

            //print the Euler Problem 2 series numbers
            System.out.println("Fib nos div by 2 except 0s: ");
            for(int i=0; i< limit; i++){    
                System.out.print(divSeries[i] + " ");
        }
    }
}

最佳答案

对 divseries 使用不同的迭代器

int j = 0; //for divseries    
for(int i=2; i < limit; i++){

   series[i] = series[i-1] + series[i-2];

   if ((series[i] % 2) == 0){
       divSeries[j] = series[i];
       j++;
   }
}

关于java - 斐波那契数字数组和元素可被 2 整除的数组的另一个副本(欧拉概率 2),交换空元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40569787/

相关文章:

java - 具有类似数组的性能的 Java Bitset 替代品?

php 仅从 csv 文件中选择第一列、中间列和最后一列

java - 遍历一个大数组

php - 如果一行不为 null 且不为空,如何显示它?

javascript - JavaScript 新手,如何进行 null 检查?

空列表上的 Java 8 流操作

c# - Java 与 C# 和 .NET 之间的区别

c++ - 对 C++ 空指针使用 NULL 或 nullptr?

java - 堆的 PermGen 空间

java - Elasticsearch - 构建和安装插件