我正在寻找对我的问题的明确解释(不查找代码),但是如果有一些代码可以帮助您解释自己,那么请做..谢谢:)
题:
-使用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/