//NumberOfDigitsDivisibleBy3.java

public class NumberOfDigitsDivisibleBy3
{
    public static void main(String[] args)
    {
        System.out.println("\nTesting numberOfDigitsDivisibleBy3() ...");
        System.out.print(numberOfDigitsDivisibleBy3(123456));
        System.out.println();
        System.out.print(numberOfDigitsDivisibleBy3(363639));
        System.out.println();
        System.out.print(numberOfDigitsDivisibleBy3(124578));
        System.out.println();
        System.out.print(numberOfDigitsDivisibleBy3(100008));
        System.out.println();
        System.out.print(numberOfDigitsDivisibleBy3(0));
        System.out.println();
        System.out.print(numberOfDigitsDivisibleBy3(9));
        System.out.println();
        System.out.print(numberOfDigitsDivisibleBy3(12));
        System.out.println();
    }

    //Computes and returns the number of digits in n that are divisible by 3
    public static int numberOfDigitsDivisibleBy3(int n)
    {
        if (n < 10)
        {
            return (n % 3 == 0) ? 1 : 0;
        }
        else
        {
            return numberOfDigitsDivisibleBy3(n / 10)
                   + numberOfDigitsDivisibleBy3(n % 10);
        }
    }
}

