我正在寻找对我的问题的明确解释(不查找代码),但是如果有一些代码可以帮助您解释自己,那么请做..谢谢:)

题:

-使用Java

-主类要求用户输入整数(斐波纳契N项),然后按顺序计算所有斐波纳契数,直到达到该项为止。

-一切都存储在整数类型的单个arraylist中。 (可以说,每个数字都被分解并存储在其自己的索引中,因此可以说是它自己的“元素”。)

例如,我的目标是使它像这样:

“请输入N斐波那契术语:”

10

现在,在内部,我将这两个基本案例存储在一个arraylist中,如下所示:

ArrayList:[1,1]

现在,在用户输入后,我试图使我的arraylist看起来像这样:

[1、2、3、5、8、1、3、2、1、3、4、5、5]

(请注意,它如何在最后一项55停止,还请注意如何将两位数的值分解为单独的元素。)

我没有问题可以分解数字,只是“计算”使我很难受..在此先感谢您的任何建议

最佳答案

听起来好像您想遍历以F1开头的斐波那契数列,同时将数字作为整数附加到ArrayList<int>。由于您想要以10为底的数字,所以我认为,如果将中间的斐波那契整数转换为字符串,然后逐步将字符串中的每个字符作为字符数组进行读取,这将是最容易阅读的。在逐步操作时,可以通过从中减去char'0'将每个数字转换回整数。然后,您可以将该数字的数字版本附加到ArrayList<int>。最终结果看起来像这样:

ArrayList<int> arrayList = new ArrayList<int>();

int a = 1;
int b = 0;
int n = 1;

while (n++ <= input) {  // input being from the user
    a += b;
    b = a - b;

    char[] fib = Integer.toString(b).toCharArray();
    for (int i = 0; i < fib.length; i++) {
        arrayList.add(fib[i] - '0');
    }
}


这里的要点是,沿着斐波那契数列走时,您不会弄乱数值。取而代之的是,您在确定要放入ArrayList<int>的每个数字的值之前,将要转换为字符串的'b'副本缓存起来。

关于java - 数组列表中的斐波那契序列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9139510/

10-11 18:06