Как напечатать последовательность Фибоначчи, пропуская каждое четвертое число, заменяет пропуски на X и начинается с 0 - PullRequest
0 голосов
/ 16 ноября 2018

/ * Мне удалось вывести это: 0, 1, 1, Х2, 3, 5, 8, Х13, 21, 34, 55, Х89, 144, 233, 377, Х610, 987, 1597, 2584, X4181, 6765, однако, я могу заставить его пропустить цифры и заменить их на Q. Я застрял на этом. (

import java.util.ArrayList;
import java.util.List;

public class FibonacciSequence {

    public static void main(String[] args) {
        long f = 0;
        List<Integer> testList = new ArrayList<Integer>();
        boolean executed;
        for(int i = 1; i<=21; i++) {

            f = fib(i);
            String space = ", ";
            if(i%4==0) {
                String x = "X";
                System.out.print(x);                
            }
            System.out.print(fib(i) + ", ");
        }
    }
    private static long fib(int i) { 
        if (i == 1) {
            return 0;
        }
        if (i <= 2) {
            return 1;
        }
        else {
            return fib(i-1)+fib(i-2);
        }
    }   
}

1 Ответ

0 голосов
/ 16 ноября 2018

Если я понимаю ваш вопрос, используйте else в дополнение к вашему if.Я очистил ваш main метод, удалив переменные, которые вы не использовали.Я бы просто добавил , после проверки, что мы не на первом элементе.Мол,

public static void main(String[] args) {
    for (int i = 1; i <= 21; i++) {
        if (i != 1) {
            System.out.print(", ");
        }
        if (i % 4 == 0) {
            System.out.print("X");
        } else {
            System.out.print(fib(i));
        }
    }
}
...