以下是代码:
class Fibonacci {
static final int MIN_INDEX = 1;
public static void main (String[] args){
int high = 1;
int low = 1;
String jel;
System.out.println("9: " + high);
for (int i = 8; i >= MIN_INDEX; i--){
if (high % 2 == 0)
jel = " *";
else
jel = " ";
System.out.println(i + ": " + high + jel);
high = low + high;
low = high - low;
}
}
}
我想编写这个程序,将Fibonacci序列存储在一个数组中,然后写出来。但我无法写出来。我能做什么?我不需要用*来标记它们。
答案 0 :(得分:1)
Fibonacci序列是一个递归函数,但使用递归在任何问题语法中实现它都是荒谬的。而是使用循环。例如:
int[] fibonacciNumbers = new int[20];
fibonacciNumbers[0] = 0;
fibonacciNumbers[1] = 1;
for (int index = 2; index < fibonacciNumbers.length; ++index)
{
fibonacciNumbers[index] = fibonacciNumbers[index - 1] + fibonacciNumbers[index - 2];
}
遍历数组中的每个元素并根据需要打印它;例如,你可以System.out.println(fibonacciNumbers[index]);
答案 1 :(得分:0)
如果你只需要斐波那契数字对:
public class Fibonacci {
private int count = 0;
public Integer next() {
return fib(count++);
}
private int fib(int n) {
if (n < 2) {
return 1;
}
return fib(n - 2) + fib(n - 1);
}
public static void main(String[] args) {
List<Integer> pairFib = new ArrayList<Integer>();
Fibonacci gen = new Fibonacci();
for (int i = 0; i < 18; i++) {
int current = gen.next();
if (current % 2 == 0) {
pairFib.add(current);
}
}
System.out.println(pairFib);
}
}
答案 2 :(得分:0)
我认为这会回答你的问题(我还为一些悲观情景添加了处理):
public class Fibonacci
{
public static void main(String[] args)
{
int[] fibMembers = buildFibArray(9);
printFibArray(fibMembers);
}
private static void printFibArray(int[] fibMembers)
{
for (int i = 0; i < fibMembers.length; i++)
{
System.out.print(fibMembers.length-i);
System.out.print(": ");
System.out.print(fibMembers[i]);
if (fibMembers[i] % 2 == 0)
{
System.out.print(" *");
}
System.out.println("");
}
}
private static int[] buildFibArray(int maxIndex)
{
int[] fibMembers = new int[maxIndex];
if (maxIndex > 0)
{
fibMembers[0] = 1;
if (maxIndex > 1)
{
fibMembers[1] = 1;
for (int i = 2; i < fibMembers.length; i++)
{
fibMembers[i] = fibMembers[i-2] + fibMembers[i-1];
}
}
}
return fibMembers;
}
}
buildFibArray
方法构建数组
printFibArray
方法打印数组 - 应该根据您的要求。