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

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

        System.out.println("1234 becomes " + digitPairsReversed(1234));
        System.out.println("12345 becomes " + digitPairsReversed(12345));
        System.out.println("10101 becomes " + digitPairsReversed(10101));
        System.out.println("1000 becomes " + digitPairsReversed(1000));
        System.out.println("1001 becomes " + digitPairsReversed(1001));
        System.out.println("1 becomes " + digitPairsReversed(1));
    }

    /**
    Reverses digit pairs in an integer.
    <p>Pre:<p>"n" has been initialized with a positive integer.
    ("n" is always regarded as having an even number of digits.)
    <p>Post:<p>Return value is the integer formed by taking each pair of
    digits in n (including a leading 0 if necessary) and reversing
    the order of the two digits in each pair.
    */
    public static int digitPairsReversed(int n)
    {
        if (n < 100)
            return 10 * (n % 10) + (n / 10);
        else
            return digitPairsReversed(n / 100) * 100 +
                   digitPairsReversed(n % 100);
    }
}
