**Homework 5, assigned MAR. 6 due MAR 20 at 11:59pm **

### Part A

Write a program in which the main method calls a method with the heading
`public static int subtract(int num)` that takes a three digit integer
`num>` and does the following

- Decomposes it into three digits,
`digit1, digit2` and
`digit3`.
- Using
`Math.max()` and `Math.min()` determines the digits
with the maximum and minimum value and assign them to `maxDigit`
and `minDigit` respectively.
- Using Prog2.java from MAR 6, determine the middle digit and
assigns it to
`midDigit`.
- Constructs an integer,
`ascend` in which these digits appear in
ascending order. For instance, if the original value of `num` was 673,
the constructed integer would be 367.
- Repeats the last step but this time produces the digits in descending
order. So in our example, it would produce 763. It assigns this to
`descend`.
- Prints these two values.
- Subtracts these two numbers (
`descend - ascend`) and returns this
value in the method.

### Part B

Write another program that calls method `subtract` in a
`while` loop until the the method returns a value that doesn't change,
i.e., 495. This is somewhat tricky. Here are some suggestions:

- To simplify this, remove the print statments from method
`subtract`.
- Assign a number, let's say 231 to a variable called
`number`
and 0 to one called `previous` before the `while` loop.
- In the loop, set
`previous` to the value of `number` (we say
that `previous` chases `number`) and obtain a new value for
`number`.
- Choose the boolean expression in the
`while` statement so
that the loop eventually termintes.
- Your program should print all the values of
`number`.