how to get exponents without using the math.pow for java

exponent, java, math, pow

Solution

Powers of 2 can simply be computed by Bit Shift Operators

int exponent = ...
int powerOf2 = 1 << exponent;

Even for the more general form, you should not compute an exponent by "multiplying `n` times". Instead, you could do Exponentiation by squaring

Problem

This is my program ``` // ************************************************************ // PowersOf2.java // // Print out as many powers of 2 as the user requests // // ************************************************************ import java.util.Scanner; public class PowersOf2 { public static void main(String[] args) { int numPowersOf2; //How many powers of 2 to compute int nextPowerOf2 = 1; //Current power of 2 int exponent= 1; double x; //Exponent for current power of 2 -- this //also serves as a counter for the loop Scanner Scanner scan = new Scanner(System.in); System.out.println("How many powers of 2 would you like printed?"); numPowersOf2 = scan.nextInt(); System.out.println ("There will be " + numPowersOf2 + " powers of 2 printed"); //initialize exponent -- the first thing printed is 2 to the what? while( exponent <= numPowersOf2) { double x1 = Math.pow(2, exponent); System.out.println("2^" + exponent + " = " + x1); exponent++; } //print out current power of 2 //find next power of 2 -- how do you get this from the last one? //increment exponent } } ``` The thing is that I am not allowed to use the math.pow method, I need to find another way to get the correct answer in the while loop.

Original source

Related problems