Я практикую с рекурсией и смотрю на вопрос:
" Напишите рекурсивную программу, чьи входные данные - это массив A и число x. Программа должна напечатать число вхождений x в A"
Это мое рабочее решение:
public int countOccurrencesOfX_Recursive(int[] array, int x, int index, int occurrences) {
if (index == array.length) {
return occurrences;
}
if (array[index] == x) {
return countOccurrencesOfX_Recursive(array, x, index+1, occurrences+1);
} else {
return countOccurrencesOfX_Recursive(array, x, index+1, occurrences);
}
}
Я не мог придумать другой способ сделать это, не вводя больше аргументов функций. Это не кажется большим, потому что это зависит от аргумента вхождения, установленного в 0, но пользователь может ввести любое целое число, которое ему нравится. Мой вопрос: считается ли это хорошим способом сохранить счетчик при использовании рекурсии, а если нет, то как бы вы это сделали?