Как вернуть несколько результатов в рекурсивном? - PullRequest
0 голосов
/ 12 марта 2020

Я хотел бы вернуть все результаты "10" в этом java методе:

class Test {

    public int loop(int[][] numbers, int total, int position) {
        for (int i = 0; i < numbers[position].length; i++) {
            int newTotal = total + numbers[position][i];
            if (newTotal == 10) return newTotal;
             else if (position < numbers.length-1) {
                int result = loop(numbers, newTotal, position+1);
                if (result != -1) return result;
             }
        }
        return -1;
    }


    public static void main(String args[])  { 
        Test test = new Test();
        int[][] numbers = { {6, 3, 2, 4}, {5, 4, 2}, { 7, 4, 3}, {2, 6} };
        System.out.println(test.loop(numbers, 0, 0)); 
    } 

}

Но у меня есть некоторые ограничения:

1 / Я не могу использовать глобальная переменная, такая как:

int[] results; // It's an object and i don't want to wait

2 / Кроме того, я не могу сохранить результат, а затем вернуть их, например:

return results; // The loop can take 5 minutes, i don't want to wait

3 / Кроме того, я не могу напечатать результаты по каждому l oop, такие как:

System.out.println(result); // The view must be independant from my model

Единственный способ увидеть это - использовать время:

While () {
     System.out.println(loop( i ???));
}

Но я не знаю, в каком Я каждый раз получаю 10 ...

Ты знаешь, как это решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...