【问题标题】:Fibonacci sequence with arrays带有数组的斐波那契数列
【发布时间】:2014-03-21 23:31:43
【问题描述】:

我的任务是使用斐波那契数列编写程序并将它们放入数组中。它的工作原理是获取用户输入(用户想要打印出的序列中有多少个数字),然后将其实现到一个数组中,并用用户输入的“数字”个数打印出序列。 由于我错过了 2 周的课程,我在网上查看了如何编写这个程序,并找到了一个视频,其中编写了以下代码。所以我不把下面的代码归功于我,我只是把它作为一个例子。

代码如下:

public class Fibonacci
{
    public static void main(String[] args)
    {
        int numToPrint;
        //how many numbers to print out

        Scanner scan = new Scanner(System.in);
        System.out.println("Hvað viltu prenta út margar tölur úr Fibonacci röðinni?");
        numToPrint = scan.nextInt();
        scan.close();

        //prints out the first 2 numbers
        int nuverandiT = 1;
        int lokaT = 0;
        System.out.println(lokaT);
        System.out.println(nuverandiT);

        //prints out the rest of the sequence
        int lokaLokaT;
        for(int i = 2; i < numToPrint; i++)
        {
            lokaLokaT = lokaT;
            lokaT = nuverandiT;
            nuverandiT = lokaLokaT + lokaT;
            System.out.println(nuverandiT);
        }
    }
}

现在这会根据用户的输入打印出斐波那契数列,但我不太确定如何将其打印到数组中。你们有谁知道怎么做吗?

【问题讨论】:

  • 打印输出到数组是什么意思?您是否希望将值存储在数组中而不是在控制台中打印它们?或者您想要在控制台中打印的值,但格式为“[2, 3, 5, 8]”?

标签: java arrays input fibonacci


【解决方案1】:

你必须创建一个数组,例如:

int[] simpleArray;
simpleArray = new int[numToPrint];

在那个地方

System.out.println(lokaT);
System.out.println(nuverandiT);

放:

simpleArray[0] = lokaT;
simpleArray[1] = nuverandiT;

在你的循环中,你把这个改为:

System.out.println(nuverandiT);

这个: simpleArray[i] = nuverandiT;

【讨论】:

  • 在这种情况下,您不想将数组初始化为new int[numToPrint+2]吗?
  • 假设 numToPrint = 10,如果你初始化 new int[numToPrint],你将有 10 个数组位置(0 到 9)。 for 循环直到 i 应该可以工作
  • 感谢您的帮助! :)
  • @user3333633 如果此解决方案适合您,请单击分数下方的复选标记以表明它是已接受的答案。
【解决方案2】:

我猜当您说“打印到数组中”时,您实际上的意思是您只想将值存储在数组中。在这种情况下,

在你的 for 循环之前:

int[] array = new int[numToPrint];

在你的 for 循环中:

array[i-2] = nuverandiT;

如果您想在将数字存储在数组中后打印它们,您可能希望循环遍历它并以相同的方式打印,通过索引访问元素。有关更多信息,java 文档非常好。我建议阅读arrayscounted loops

【讨论】:

  • 您可以使用Arrays.toString(array) 来打印数组。不需要额外的循环。
  • 也是一个不错的选择,具体取决于您对格式的挑剔程度。
  • 感谢您的反馈 :)
猜你喜欢
  • 1970-01-01
  • 2015-06-05
  • 2013-08-03
  • 2014-05-19
  • 2015-08-30
  • 2013-03-14
  • 2013-02-24
相关资源
最近更新 更多