Я пытался опробовать вызов программирования, который я нашел, вы можете найти его here, если вы хотите точно знать, что это за требования, но что я ' m в основном пытается сделать, чтобы получить минимально возможное кратное последовательности Фибоначчи, которое содержит заданное число. Таким образом, вход 13 будет выводить [0, 1, 1, 2, 3, 5, 8, 13]. Вход 6 будет выводить [0, 2, 2, 4, 6].(Java) Попытка использовать ArrayList для создания кратных последовательности Fibonacci и сбоев
Мой код отлично работает для любого числа в регулярной последовательности Фибоначчи, но для любого его нескольких выходов, например, если вход 16, [0, 16], и я не могу понять, почему. Любая помощь будет широко оценена.
import java.util.Scanner;
import java.util.ArrayList;
public class FibonacciMultiples{
public static void main(String args[]){
int target;
ArrayList<Integer> x = new ArrayList<Integer>();
x.add(0);
Scanner input;
input = new Scanner(System.in);
System.out.println("Please enter target: ");
target = input.nextInt();
int i = 0;
int j = 1;
int k = 1;
while(x.get(i) != target){
x.add((j*k) + x.get(i));
i++;
j = x.get(i-1);
if(x.get(i) > target){
x.clear();
x.add(0);
i=0;
j=1;
k++;
}
};
System.out.println(x);
}
}
было бы очень полезно, если вы дали значимые имена переменных. Я предполагаю, что k является изменяющимся значением f (1)? и в чем смысл 'x.add ((j * k) + x.get (i));'? установка нового значения в фибоначчи seq shuld будет такой же простой, как «x.add (x.get (x.size() - 2) + x.get (x.size() - 1));' –