Java Reference
In-Depth Information
Each state can also be represented using a binary number. For example, the pre-
ceding matrices correspond to the numbers
000010000 101001100 110100001 101110100 100111110
There are a total of 512 possibilities, so you can use decimal numbers 0, 1, 2,
3, . . . , and 511 to represent all states of the matrix. Write a program that prompts
the user to enter a number between 0 and 511 and displays the corresponding
matrix with the characters
H
and
T
. Here is a sample run:
Enter a number between 0 and 511:
H H H
H H H
T T T
7
The user entered
7
, which corresponds to
000000111
. Since
0
stands for
H
and
1
for
T
, the output is correct.
**7.12
(
Financial application: compute tax
) Rewrite Listing 3.6, ComputeTax.java, using
arrays. For each filing status, there are six tax rates. Each rate is applied to a cer-
tain amount of taxable income. For example, from the taxable income of $400,000
for a single filer, $8,350 is taxed at 10%, (33,950 - 8,350) at 15%, (82,250 -
33,950) at 25%, (171,550 - 82,550) at 28%, (372,550 - 82,250) at 33%, and
(400,000 - 372,950) at 36%. The six rates are the same for all filing statuses,
which can be represented in the following array:
double
[] rates = {
0.10
,
0.15
,
0.25
,
0.28
,
0.33
,
0.35
};
The brackets for each rate for all the filing statuses can be represented in a two-
dimensional array as follows:
int
[][] brackets = {
{
8350
,
33950
,
82250
,
171550
,
372950
},
// Single filer
{
16700
,
67900
,
137050
,
20885
,
372950
},
// Married jointly
// or qualifying widow(er)
{
8350
,
33950
,
68525
,
104425
,
186475
},
// Married separately
{
11950
,
45500
,
117450
,
190200
,
372950
}
// Head of household
};
Suppose the taxable income is $400,000 for single filers. The tax can be computed
as follows:
tax = brackets[
0
][
0
] * rates[
0
] +
(brackets[
0
][
1
] - brackets[
0
][
0
]) * rates[
1
] +
(brackets[
0
][
2
] - brackets[
0
][
1
]) * rates[
2
] +
(brackets[
0
][
3
] - brackets[
0
][
2
]) * rates[
3
] +
(brackets[
0
][
4
] - brackets[
0
][
3
]) * rates[
4
] +
(
400000
- brackets[
0
][
4
]) * rates[
5
]
*7.13
(
Locate the largest element
) Write the following method that returns the location
of the largest element in a two-dimensional array.
public static int
[] locateLargest(
double
[][] a)
The return value is a one-dimensional array that contains two elements. These
two elements indicate the row and column indices of the largest element in the
two-dimensional array. Write a test program that prompts the user to enter a