# Thread: Recursive Method ==> find how many times a value is repeated in an array

1. Member Join Date
Feb 2008
Posts
3
Rep Power
0

## Recursive Method ==> find how many times a value is repeated in an array

Hi, I need to use a recursive method to find the number of times a certain value is repeated within a specific array of integers. I'm really lost on this one. I know how to do this iteratively, but if someone can hint me towards the base case or more of the logic than that, it would be greatly appreciated.

I am aware that this can be done without using recursion, however, I need to do this recursively. Any help you can give would be greatly appreciated. Thanks in advance! My code (or what I have of code) is posted below:

Java Code:
```import.java.io.*;
public class Main(

public static int getNumberEqual(int[] data, int first, int last, int val) {
if(first==val)
++count;
else
return getNumberEqual(data, first+1, last, val);
if(last==val)
++count;
}
public static void main(String[] args) {

int firstIndex, lastIndex;
int[] ints = new int;
ints = 20;
ints = 18;
ints = 40;
ints = 34;
ints = 50;
ints = 40;
ints = 20;
ints = 13;
ints = 98;
ints = 1;
int f = 4;
int val = 20;
firstIndex = 0;
lastIndex = ints.length - 1;

System.out.println("GetNumberEqual for val " + val + " is "+ getNumberEqual(ints, firstIndex, lastIndex, val));

}
}```  Reply With Quote

2. Member Join Date
Feb 2008
Posts
3
Rep Power
0

## Follow Up

I've actually altered my code already, but it still does not work. I changed the static method 'getNumberEqual()' to this:

public static int getNumberEqual(int[] data, int first, int last, int val) {
if(first==last)
return count;
if(first==val)
{
count++;
return getNumberEqual(data, first+1, last, val);
}
else
return getNumberEqual(data, first+1, last, val);
return count;
}

Thanks again:)  Reply With Quote

3. Member Join Date
Dec 2007
Posts
21
Rep Power
0

## Java Code:
```//import java.io.*;
public class temp1class{

public static int getNumberEqual(int[] data, int curr, int val) {
if (curr == 0){
if (val == data[curr]){
return 1;
} else {
return 0;
}
} else {
if (val == data[curr]){
curr--;
return getNumberEqual(data, curr, val)+1;
} else {
curr--;
return getNumberEqual(data, curr, val);

}
}

}
public static void main(String[] args) {

int[] ints = new int;
ints = 20;
ints = 18;
ints = 40;
ints = 34;
ints = 50;
ints = 40;
ints = 20;
ints = 20;
ints = 98;
ints = 1;
int f = 4;
int val = 20;

System.out.println("GetNumberEqual for val " + val + " is "+ getNumberEqual(ints, ints.length-1, val));

}
}```  Reply With Quote

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•