Source of SwitchDigitPairs.java


  1: //SwitchDigitPairs.java
  2: //Switches the order of every pair of digits in an integer,
  3: //starting from the right. Considers every integer to contain
  4: //an even number of digits.

  6: public class SwitchDigitPairs
  7: {
  8:     public static void main(String[] args)
  9:     {
 10:         System.out.println("\nThis program reverses each pair of digits "
 11:             + "in a positive integer.\nIt considers any integer to contain "
 12:             + "an even number of digits, which means\nthat any integer with "
 13:             + "an odd number of digits will have a \"leading zero\".\n");

 15:         System.out.println("1234 becomes " + digitPairsReversed(1234));
 16:         System.out.println("12345 becomes " + digitPairsReversed(12345));
 17:         System.out.println("10101 becomes " + digitPairsReversed(10101));
 18:         System.out.println("1000 becomes " + digitPairsReversed(1000));
 19:         System.out.println("1001 becomes " + digitPairsReversed(1001));
 20:         System.out.println("1 becomes " + digitPairsReversed(1));
 21:     }

 23:     /**
 24:     Reverses digit pairs in an integer.
 25:     <p>Pre:<p>"n" has been initialized with a positive integer.
 26:     ("n" is always regarded as having an even number of digits.)
 27:     <p>Post:<p>Return value is the integer formed by taking each pair of
 28:     digits in n (including a leading 0 if necessary) and reversing
 29:     the order of the two digits in each pair.
 30:     */
 31:     public static int digitPairsReversed(int n)
 32:     {
 33:         if (n < 100)
 34:             return 10 * (n % 10) + (n / 10);
 35:         else
 36:             return digitPairsReversed(n / 100) * 100 +
 37:                    digitPairsReversed(n % 100);
 38:     }
 39: }