public class Fig02_11 { public static boolean isEven( int n ) { return n % 2 == 0; } public static long pow( long x, int n ) { if( n == 0 ) return 1; if( n == 1 ) return x; if( isEven( n ) ) return pow( x * x, n / 2 ); else return pow( x * x, n / 2 ) * x; } // Test program public static void main( String [ ] args ) { System.out.println( "2^21 = " + pow( 2, 21 ) ); System.out.println( "2^50 = " + pow( 2, 50 ) ); } }