Java Reference
In-Depth Information
SOLUTION:
Program 11.8
Nim game solution
public class
Nim
{
public static int
binaryToDecimal (
int
[]
binaryRepresentation )
{
int
n= 0;
int
p2 = 1;
for
(
int
i=0; i
<
binaryRepresentation . length ; i++)
n = n + binaryRepresentation [ i ]
∗
p2 ;
p2 = p2
∗
2;
return
n;
}
public static void
decimalToBinaryAux(
int
n,
int
i,
int
[]
binaryRepresentation )
{
if
(n
>
0)
{
binaryRepresentation [ i ] = n % 2;
decimalToBinaryAux(n/2 , i +1, binaryRepresentation )
;
}
}
public static int
[ ]
decimalToBinary(
int
n,
int
k)
{
int
[] binaryRepresentation =
new i n t
[k];
decimalToBinaryAux(n , 0 , binaryRepresentation ) ;
return
binaryRepresentation ;
}
public static int
getBinaryLength(
int
[] decimalTab)
{
// search the largest value
int
max = decimalTab[0];
for
(
int
i=1; i
<
d e c i m a l T a b . l e n g t h ;
i ++)
{
if
(decimalTab[ i ]
>
max)
{
max = decimalTab [ i ] ;
}
int
k=0;
int
p= 1;
while
(p
<
=max)
{
++k ;
p
∗
=2;
return
k;
}
public static int
[ ] [ ]
decomposition(
int
[] decimalTab)
{
int
k = getBinaryLength(decimalTab) ;
int
[][] binaryTab =
new i n t
[decimalTab.length ][];
Search WWH ::
Custom Search