|
To get a sense of the problem, we again use a concrete example:
|
|
|
half = (number of lines) / 2;
if ( number of lines is even )
{
line 1: a[0] + a[ half ]
line 2: a[1] + a[ half + 1]
line 3: a[2] + a[ half + 2]
...
last: a[half-1] + a[ half + (half - 1)]
}
else
{
line 1: a[0] + a[ half + 1]
line 2: a[1] + a[ half + 2]
line 3: a[2] + a[ half + 3]
...
last-1: a[half-1] + a[ half + half ]
last: a[half]
}
|
half = (number of lines) / 2;
if ( number of lines is even )
{
line 1: a[0] + a[ half + 0]
line 2: a[1] + a[ half + 1]
line 3: a[2] + a[ half + 2]
...
last: a[(half-1)] + a[ half + (half - 1)]
}
else
{
line 1: a[0] + a[ half + 1 + 0]
line 2: a[1] + a[ half + 1 + 1]
line 3: a[2] + a[ half + 1 + 2]
...
last-1: a[half-1] + a[ half + 1 + (half-1) ]
last: a[half]
}
|
/* ==================================================
Input: t = array of text
nLines = number of lines in array t
=================================================== */
public static void printText( String[] t, int nLines )
{
int i, half;
half = nLines/2;
if ( nLines % 2 == 0 )
{ // ****************************************
// Both columns have same number of lines
// ****************************************
for (i = 0; i < half; i++)
System.out.println(t[i] + " " + t[i+half]);
}
else
{ // ****************************************
// First column has one more line
// ****************************************
for (i = 0; i < half; i++)
System.out.println(t[i] + " " + t[i+half+1]);
System.out.println(t[half]); // Extra line for column 1
}
}
|
How to run the program:
|