Homework 5, assigned MAR. 6 due MAR 20 at 11:59pm
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
- 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
- Prints these two values.
- Subtracts these two numbers (descend - ascend) and returns this
value in the method.
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
- Choose the boolean expression in the while statement so
that the loop eventually termintes.
- Your program should print all the values of number.