# Length

hey,

i'ver develop a programme using a while and for loop to diplay in a table the results of 2^n where 1<=n<64.

However i don't know how to modify the loop to limit the resuts to 10 digits. Also i wish to right align the numbers displayed in the n column.

If anyone knows how to do this, please let me know. If ye want to jazz up the presentation too fire away! thanks!

Here is my code:

/*Computes 2^n where 1<=n<64 and displays in a table*/

class Numbers
{
public static void main(String[] args)
{
byte n = 1;      //declare n, the power, as a byte. initialised at 1 and will not excced 64

System.out.println("n \t2^n"); //print header of table output

while (n<64) //iterate loop while n is less than 64
{
n++; //increment n by 1
} // end of while loop

/*for (n=1; n<64; n++)
{
n=n++; //increment n by 1
}//end of for loop*/

}//end of main
}//end of class

Thanks as ever

Dinny
###### Who is Participating?

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Commented:
something like:

-----------

import java.text.* ;

class Numbers
{
public static void main( String[] args )
{
byte n = 1 ; //declare n, the power, as a byte. initialised at 1 and will not excced 64
double answer ; //solution of 2^n

DecimalFormat df = new DecimalFormat( "0.##########E00" ) ;
System.out.println( "n \t2^n" ) ; //print header of table output

while( n < 64 ) //iterate loop while n is less than 64
{
answer = Math.pow( 2, n ) ; // set answer to 2^n
n++ ; //increment n by 1
} // end of while loop

/*for (n=1; n<64; n++)
{
n=n++; //increment n by 1
}//end of for loop*/

} //end of main
} //end of class

Experts Exchange Solution brought to you by

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Commented:
Hope this is sort of what you wanted...

btw, the DecimalFormat bit limits it to 10 decimal places, and the while loop pads the strings out to a max of 15 chars :-)

Tim
Commented:
You'll get better output with a BigInteger:

import java.text.* ;
import java.math.BigInteger;

class Numbers
{
public static void main( String[] args )
{
BigInteger bi = new BigInteger("2");
System.out.println( "n \t\t\t2^n" ) ; //print header of table output
System.out.println("---------------------------");
for(int i = 1;i < 64;i++) {
String current = bi.pow(i).toString();
while(current.length() < 19)
current = " " + current;
System.out.println(i + "\t" + current);

}
} //end of main
} //end of class
Commented:
Commented:
Yes, maybe i should create a subclass called 'BigPal' - i'm surprised it isn't final
Commented:
Ooooh...me too >_<
Java DeveloperCommented:
for (byte n=1; n<64 && (answer=(long) Math.pow(2, n))<10000000000L; n++)
{
Java DeveloperCommented:

StringBuffer out = new StringBuffer();
out.setLength(10 - s.length());
out.append(s);

I'd also suggest not using tabs to align your table and instead add the number of spaces you require.
Java DeveloperCommented:
public static void main(String[] args)
{
for (byte n=1; n<64 && (answer=(long) Math.pow(2, n))<10000000000L; n++)
{
rightAlignValue(n, 2);
System.out.println();
}
}

private static void rightAlignValue(long value, int len)
{
String s = Long.toString(value);
StringBuffer out = new StringBuffer();
out.setLength(len - s.length());
out.append(s);
System.out.print(out);
}
###### It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.