# Recursive Counting

Printable View

• 01-29-2009, 08:12 PM
zlwilly
Recursive Counting
I have an an exercise for class that I have been working on, trying to teach us recursion. I am able to nearly wrap my head around the subject, but have one small problem left. The program is supposed to take a large integer and a single digit integer, and tell how many times the small int occurs in the large one. This much I can get it to do.

However, it does the counting using a "static int i" that can be accessed by any part of the program, and I would prefer to use the recursion itself to accomplish this.

Here's the code.

Code:

```import java.util.*; public class testCopy { static int i=0;     public static void main (String args[])     {                 int integer=0;         int digit=0;         Scanner keyboard = new Scanner (System.in);         System.out.println("Please enter an integer:");         integer=keyboard.nextInt();         System.out.println("Please enter a single digit:");         digit=keyboard.nextInt();         System.out.println();         System.out.println("You have chosen integer "+integer+" and digit "+digit+".");         System.out.println();         System.out.println(frequencyCount(integer,digit));     }         public static int frequencyCount(int n,int d)     {                   if ((n==0) && (Integer.toString(n).length())==1)         return(i);                 else if(n%10==d)           {             i++;         return (frequencyCount(n/10,d) ); //if whatever is equal to d then return whats left plus one more           }         else         return (frequencyCount(n/10,d));     }     }```
Is there some way to use the recursion to do the counting for me?
Any help would be greatly appreciated! Thanks!
• 01-29-2009, 09:42 PM
emceenugget
looks like you just need to get used to recursion. trying to make help as obscure as possible, here's some simple straightforward pseudocode to think on:

Code:

```if current digit matches then return recursive call + 1 else return recursive call```