Source of RecursionDemo2.java


  1: //RecursionDemo2.java
  2: 
  3: import java.util.Scanner;
  4: 
  5: public class RecursionDemo2
  6: {
  7:     public static void main(String[] args)
  8:     {
  9:         System.out.println("Enter a nonnegative number:");
 10:         Scanner keyboard = new Scanner(System.in);
 11:         int number = keyboard.nextInt();
 12:         System.out.println(number + " contains "
 13:             + getNumberOfZeros(number) + " zeros.");
 14:     }
 15: 
 16:     /**
 17:      * Precondition: n >= 0.
 18:      * Returns the number of zero digits in n.
 19:     */
 20:     public static int getNumberOfZeros
 21:     (
 22:         int n
 23:     )
 24:     {
 25:         int result;
 26: 
 27:         if (n == 0)
 28:             result = 1;
 29:         else if (n < 10)
 30:             result = 0;  //n has one digit that is not 0
 31:         else if (n % 10 == 0)
 32:             result = getNumberOfZeros(n / 10) + 1;
 33:         else //n % 10 != 0
 34:             result = getNumberOfZeros(n / 10);
 35: 
 36:         return result;
 37:     }
 38: }