public class SwitchDigitPairs
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: }