Write a
recursive program that finds the number of times that x occurs in the list.
import java.util.Objects; public class FindOccurrences { public static int findOccurrences(int arr[], int x) { Objects.nonNull(arr); return count(arr, 0, x); } private static int count(int arr[], int index, int element) { if (index == arr.length) return 0; if (arr[index] == element) return 1 + count(arr, index + 1, element); return count(arr, index + 1, element); } }
Following is
the junit test case for above program.
import static org.junit.Assert.assertEquals; import org.junit.Test; public class FindOccurrencesTest { @Test public void test1() { int arr1[] = { 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 }; assertEquals(FindOccurrences.findOccurrences(arr1, 1), 1); assertEquals(FindOccurrences.findOccurrences(arr1, 2), 2); assertEquals(FindOccurrences.findOccurrences(arr1, 3), 3); assertEquals(FindOccurrences.findOccurrences(arr1, 4), 4); } }
No comments:
Post a Comment