Monday, 2 August 2010

PowersOfTwo.java

/*************************************************************************
* Compilation: javac PowersOfTwo.java
* Execution: java PowersOfTwo N
*
* This program takes a command-line argument N and prnts a table of
* the powers of 2 that are less than or equal to 2^N.
*
* % java PowersOfTwo 5
* 0 1
* 1 2
* 2 4
* 3 8
* 4 16
* 5 32
*
* % java PowersOfTwo 6
* 0 1
* 1 2
* 2 4
* 3 8
* 4 16
* 5 32
* 6 64
*
* Remarks
* ------------
* Only works if 0 <= N < 31 since 2^31 overflows an int.
*
*************************************************************************/

public class PowersOfTwo {
public static void main(String[] args) {

// read in one command-line argument
int N = Integer.parseInt(args[0]);

int i = 0; // count from 0 to N-1
int powerOfTwo = 1; // the ith power of two

// repeat until i equals N
while (i <= N) {
System.out.println(i + " " + powerOfTwo); // print out the power of two
powerOfTwo = 2 * powerOfTwo; // double to get the next one
i = i + 1;
}

}
}

No comments:

Post a Comment