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
 11:         (
 12:             "\nThis program reverses each pair of digits "
 13:             + "in a positive integer.\nIt considers any integer to contain "
 14:             + "an even number of digits, which means\nthat any integer with "
 15:             + "an odd number of digits will have a \"leading zero\".\n"
 16:         );

 18:         System.out.println("1234 becomes " + digitPairsReversed(1234));
 19:         System.out.println("12345 becomes " + digitPairsReversed(12345));
 20:         System.out.println("10101 becomes " + digitPairsReversed(10101));
 21:         System.out.println("1000 becomes " + digitPairsReversed(1000));
 22:         System.out.println("1001 becomes " + digitPairsReversed(1001));
 23:         System.out.println("1 becomes " + digitPairsReversed(1));
 24:     }

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